https://github.com/jekyll/jekyll
Raw File
Tip revision: 15e133f6274b577519b1695a962aa1fb78f7bddf authored by Parker Moore on 31 March 2017, 04:56:15 UTC
Depend on my branch of yajl-ruby with Ruby 2.4 Integer fix
Tip revision: 15e133f
flat-map
#!/usr/bin/env ruby
require 'benchmark/ips'

enum = (0..50).to_a
nested = enum.map { |i| [i] }

def do_thing(blah)
  blah * 1
end

Benchmark.ips do |x|
  x.report('.map.flatten with nested arrays') { nested.map { |i| do_thing(i) }.flatten(1) }
  x.report('.flat_map with nested arrays')    { nested.flat_map { |i| do_thing(i) } }

  x.report('.map.flatten with no nested arrays') { enum.map { |i| do_thing(i) }.flatten(1) }
  x.report('.flat_map with no nested arrays')    { enum.flat_map { |i| do_thing(i) } }
end
back to top