Skip to content

Instantly share code, notes, and snippets.

@jonas-schulze
Last active March 15, 2018 12:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonas-schulze/2e7ff5f064545bfc6ae8cb639bb6cedc to your computer and use it in GitHub Desktop.
Save jonas-schulze/2e7ff5f064545bfc6ae8cb639bb6cedc to your computer and use it in GitHub Desktop.
Ruby Performance Tricks -- 6 Years Later -- Trick 4
require 'benchmark'
def merge!(array)
array.inject({}) { |h, e| h.merge!(e => e) }
end
def merge(array)
array.inject({}) { |h, e| h.merge(e => e) }
end
N = 10_000
array = (0..N).to_a
puts RUBY_DESCRIPTION
Benchmark.bm(10, "m VS m!") do |x|
m_bang = x.report("merge!") { merge!(array) }
m = x.report("merge") { merge(array) }
[m / m_bang]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment