require 'benchmark'
Benchmark.bm do |x|
x.report("map.flat") do
(1..1000).to_a.map { |e| [e,e] }.flatten
end
x.report("flat_map") do
(1..1000).to_a.flat_map { |e| [e,e] }
end
end
Slide 9
Slide 9 text
user system total real
map.flat 0.000 0.000 0.000 ( 0.001025)
flat_map 0.000 0.000 0.000 ( 0.000569)
Slide 10
Slide 10 text
require 'benchmark'
Benchmark.bm do |x|
[100, 500, 1000, 5000].each do |size|
x.report("map.flat") do
(1..size).to_a.map { |e| [e,e] }.flatten
end
x.report("flat_map") do
(1..size).to_a.flat_map { |e| [e,e] }
end
end
end
require 'benchmark/plot'
arr = [100, 500, 1000, 5000]
Benchmark.plot(arr) do |x|
x.report("map.flat") do |size|
(1..size).to_a.map { |e| [e,e] }.flatten
end
x.report("flat_map") do |size|
(1..size).to_a.flat_map { |e| [e,e] }
end
end
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
require 'benchmark/plot'
arr = [100, 500, 1000, 5000]
arr.map! { |size| (1..size).to_a }
Benchmark.plot(arr) do |x|
x.report("map.flat") do |a|
a.map { |e| [e,e] }.flatten
end
x.report("flat_map") do |a|
a.flat_map { |e| [e,e] }
end
end
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
require 'benchmark/plot'
arr = [100, 500, 1000, 5000]
arr.map! { |size| (1..size).to_a }
Benchmark.plot(arr) do |x|
x.report("map.flat") do |a|
a.map { |e| [e,e] }.flatten
end
x.report("flat_map") do |a|
a.flat_map { |e| [e,e] }
end
end
Slide 19
Slide 19 text
class TestArray
attr_reader :data
def initialize data
@data = data
end
def to_s
@data.size.to_s
end
end
Slide 20
Slide 20 text
require 'benchmark/plot'
arr = [100, 500, 1000, 5000]
arr.map! { |size| TestArray.new (1..size).to_a }
Benchmark.plot(arr) do |x|
x.report("map.flat") do |a|
a.data.map { |e| [e,e] }.flatten
end
x.report("flat_map") do |a|
a.data.flat_map { |e| [e,e] }
end
end
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
Customization Options
●
:title – Change the title of the graph.
●
:x_labels – Toggle whether X axis labels should be
displayed.
●
:x_axis_label – A string for the label of the X axis.
●
:time – The kind of time that you want plotted (real
time or system CPU time or user CPU time).
●
:file_name – The file name of the graph.