Actions
Bug #21851
closedPerformance difference between / operator and fdiv
Bug #21851:
Performance difference between / operator and fdiv
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 4.0.1 (2026-01-13 revision e04267a14b) +PRISM [x64-mingw-ucrt]
Description
Benchmarking fdiv against the / operator, it seems like fdiv is significantly slower. As far as I'm aware there's no functional difference between these two methods.
I first ran this on 2.6, and then checked against 4.0 to make sure it hadn't been fixed in the meantime, and saw the same results.
require 'benchmark'
n = 500_000_000
c = nil
Benchmark.bm do |benchmark|
benchmark.report("to_f ") do
n.times do |i|
c = n / i.to_f
end
end
benchmark.report("fdiv ") do
n.times do |i|
c = n.fdiv(i)
end
end
end
user system total real
to_f 37.672000 0.110000 37.782000 ( 38.714876)
fdiv 113.016000 0.265000 113.281000 (116.428442)
Actions