From c200dc7487d76d5a98c27c013d4056fd8904f3df Mon Sep 17 00:00:00 2001 From: Chuck Remes Date: Wed, 9 Mar 2011 14:46:55 -0600 Subject: [PATCH] bench Array#reject, #reject\! and #select --- benchmark/core/array/bench_reject.rb | 43 ++++++++++++++++++++++++++++ benchmark/core/array/bench_select.rb | 25 ++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 benchmark/core/array/bench_reject.rb create mode 100644 benchmark/core/array/bench_select.rb 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