Project

General

Profile

Bug #13629

Improve performance for copying array elements

Added by watson1978 (Shizuo Fujita) about 3 years ago. Updated about 3 years ago.

Status:
Rejected
Priority:
Normal
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

#1

Updated by stomar (Marcus Stollsteimer) about 3 years ago

  • Subject changed from Improve performance in where copy array elements to Improve performance for copying array elements

Updated by nobu (Nobuyoshi Nakada) about 3 years ago

  • Status changed from Open to Rejected

Nothing changed actually.

Also available in: Atom PDF