Project

General

Profile

Actions

Bug #21851

closed

Performance difference between / operator and fdiv

Bug #21851: Performance difference between / operator and fdiv

Added by mbrown1intel (Michael Brown) 28 days ago. Updated 13 days ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 4.0.1 (2026-01-13 revision e04267a14b) +PRISM [x64-mingw-ucrt]
[ruby-core:124631]

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)

Related issues 1 (0 open1 closed)

Related to Ruby - Bug #13078: with Integer a and b, a.fdiv(b) sometimes inaccurate than Rational(a, b).to_fClosedActions
Actions

Also available in: PDF Atom