require 'benchmark'
n = 1_000_000
Benchmark.bm(20) do |x|
x.report("chained methods:") do
n.times do
['coconut', 'lemon', 'banana', 'apple'].select { |e| e.size > 5 }
.map { |e| e.upcase }
end
end
x.report("only reduce:") do
n.times do
['coconut', 'lemon', 'banana', 'apple'].reduce([]) do |acc, e|
acc << e.upcase if e.size > 5
acc
end
end
end
end