diff --git a/benchmark/core/array/bench_reject.rb b/benchmark/core/array/bench_reject.rb new file mode 100644 index 0000000000..4a1614642a --- /dev/null +++ b/benchmark/core/array/bench_reject.rb @@ -0,0 +1,43 @@ +require 'benchmark' +require 'benchmark/ips' + +Benchmark.ips do |x| + strings = ('a'..'j').to_a + numbers = [-4, -81, 0, 5, 12, -1_000_000, 1, 10, 100, 1000] + + x.report "reject string" do |times| + i = 0 + while i < times + a = strings.dup + a.reject { |v| v < 'd' } + i += 1 + end + end + + x.report "reject numbers" do |times| + i = 0 + while i < times + a = numbers.dup + a.reject { |v| v < 10 } + i += 1 + end + end + + x.report "reject! string" do |times| + i = 0 + while i < times + a = strings.dup + a.reject! { |v| v < 'd' } + i += 1 + end + end + + x.report "reject! numbers" do |times| + i = 0 + while i < times + a = numbers.dup + a.reject! { |v| v < 10 } + i += 1 + end + end +end diff --git a/benchmark/core/array/bench_select.rb b/benchmark/core/array/bench_select.rb new file mode 100644 index 0000000000..ffe844909e --- /dev/null +++ b/benchmark/core/array/bench_select.rb @@ -0,0 +1,25 @@ +require 'benchmark' +require 'benchmark/ips' + +Benchmark.ips do |x| + strings = ('a'..'j').to_a + numbers = [-4, -81, 0, 5, 12, -1_000_000, 1, 10, 100, 1000] + + x.report "select string" do |times| + i = 0 + while i < times + a = strings.dup + a.select { |v| v > 'd' } + i += 1 + end + end + + x.report "select numbers" do |times| + i = 0 + while i < times + a = numbers.dup + a.select { |v| v > 10 } + i += 1 + end + end +end