Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
require 'benchmark' def bench_rescue(bm) bm.report("control") { 1_000_000.times { foo1 } } bm.report("one rescue") { 1_000_000.times { foo2a } } bm.report("one rescue + raise") { 1_000_000.times { foo2a } } bm.report("five rescues") { 1_000_000.times { foo3a } } bm.report("five rescues + raise") { 1_000_000.times { foo3b } } end def foo1; end def foo2a; rescue RuntimeError; end def foo2b; raise; rescue RuntimeError; end def foo3a; rescue NameError; rescue NameError; rescue NameError; rescue NameError; rescue RuntimeError; end def foo3b; raise; rescue NameError; rescue NameError; rescue NameError; rescue NameError; rescue RuntimeError; end if $0 == __FILE__ Benchmark.bmbm(40) {|bm| bench_rescue(bm)} end
This paste will be private.
From the Design Piracy series on my blog: