Project

General

Profile

« Previous | Next » 

Revision 2d001003

Added by watson1978 (Shizuo Fujita) over 4 years ago

Improve performance of Array#sum with float elements (#1555)

The declaration of local variable in loop, it will initialize local variable for each run of the loop with clang generated code.
So, it shouldn't declare the local variable in heavy loop.

Array#sum with float elements will be faster around 30%.

  • Before
    user system total real
    3.320000 0.010000 3.330000 ( 3.336088)

  • After
    user system total real
    2.590000 0.010000 2.600000 ( 2.602399)

  • Test code
    require 'benchmark'

Benchmark.bmbm do |x|
ary = []
10000.times { ary << Random.rand }

x.report do
50000.times do
ary.sum
end
end

end