Actions
Bug #13426
closedImprove performance of implicit type conversion using #to_r
    Bug #13426:
    Improve performance of implicit type conversion using #to_r
  
Description
This patch will improve performance in implicit type conversion using #to_r
At least, Integer#quo will be faster around 40%.
And, this will improve some Time methods which calling quov() internally.
Before¶
                   user     system      total        real
Integer#quo    2.030000   0.010000   2.040000 (  2.031988)
Time#subsec    2.410000   0.000000   2.410000 (  2.412172)
After¶
                  user     system      total        real
Integer#quo   1.460000   0.000000   1.460000 (  1.463345)
Time#subsec   2.050000   0.010000   2.060000 (  2.056003)
Test code¶
require 'benchmark'
Benchmark.bmbm do |x|
  x.report "Integer#quo" do
    5000000.times do
      42.quo(3)
    end
  end
  x.report "Time#subsec" do
    t = Time.now
    4000000.times do
      t.subsec
    end
  end
end
Patch¶
        
           Updated by mrkn (Kenta Murata) over 8 years ago
          Updated by mrkn (Kenta Murata) over 8 years ago
          
          
        
        
      
      - Status changed from Open to Closed
Applied in changeset trunk|r58347.
Improve performance of type conversion using to_r
- 
object.c: Add to_r in conv_method_tbl. 
- 
defs/id.def: add to_r. 
- 
benchmark/bm_int_quo.rb: added. 
- 
benchmark/bm_time_subsec.rb: added. 
[Bug #13426]
[ruby-core:80665]
[Fix GH-1582]
Actions