t = Time.now 1_000_000.times { 40.times { break } } puts 'break %.2f' % (Time.now-t) t = Time.now 1_000_000.times { begin ; 40.times { break } ; end } puts 'begin %.2f' % (Time.now-t) t = Time.now 1_000_000.times { catch(:fu) { 40.times { throw :fu } } } puts 'catch %.2f' % (Time.now-t) t = Time.now 1_000_000.times { 40.times { raise } rescue nil } puts 'raise %.2f' % (Time.now-t)