Project

General

Profile

Actions

Bug #13629

closed

Improve performance for copying array elements

Added by watson1978 (Shizuo Fujita) almost 7 years ago. Updated almost 7 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
[ruby-core:81557]

Description

ary_memcpy0() has calculated the cache line size every time when copy array elements.
This patch will replace it with pre calculated value of cache line size.

Array#+ will be faster around 2%.

Before

      Array#+(other)      5.167M (± 0.1%) i/s -     25.928M in   5.017629s

After

      Array#+(other)      5.256M (± 0.2%) i/s -     26.410M in   5.025261s

Test code

require 'benchmark/ips'

Benchmark.ips do |x|
  x.report "Array#+(other)" do |loop|
    ary1 = [1, 2, 3]
    ary2 = [4, 5]
    i = 0
    while i < loop
      ary1 + ary2
      i += 1
    end
  end
end

Patch

https://github.com/ruby/ruby/pull/1641

Actions

Also available in: Atom PDF

Like0
Like0Like0