[ruby-cvs:65480] normal:r58308 (trunk): time.c: Improve Time#to_i performance

normal at ruby-lang.org normal at ruby-lang.org
Tue Apr 11 03:08:16 JST 2017


normal	2017-04-11 03:08:16 +0900 (Tue, 11 Apr 2017)

  New Revision: 58308

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=58308

  Log:
    time.c: Improve Time#to_i performance
    
    Time#to_i will be faster around 80% (on 64-bit platforms).
    
    * Before
           user     system      total        real
       2.840000   0.000000   2.840000 (  2.847238)
    
    * After
           user     system      total        real
       1.600000   0.000000   1.600000 (  1.598911)
    
    * Test code
    require 'benchmark'
    
    Benchmark.bmbm do |x|
      x.report do
        t = Time.now
        20000000.times do
          t.to_i
        end
      end
    end
    
    * time.c (_div): new function avoid rb_funcall
      (div): replace with new _div function
      [ruby-core:80636] [Bug #13418]
      Thanks to Watson <watson1978 at gmail.com> for the patch.
    
    From: Watson <watson1978 at gmail.com>

  Modified files:
    trunk/time.c


More information about the ruby-cvs mailing list