require 'benchmark'
Benchmark.bmbm do |x|
x.report { 200000.times { a = 'foobar'[/(\Afoo)bar/] } }
x.report { 200000.times { a = 'foobar'[/\A(foo)bar/] } }
end
Benchmark.bmbm do |x|
x.report { 200000.times { a = 'foobar'[/foo(bar\z)/] } }
x.report { 200000.times { a = 'foobar'[/foo(bar)\z/] } }
end
Benchmark.bmbm do |x|
x.report { 200000.times { a = "foo\nbarbaz"[/foo\n(^bar)baz/] } }
x.report { 200000.times { a = "foo\nbarbaz"[/foo\n^(bar)baz/] } }
end
Benchmark.bmbm do |x|
x.report { 200000.times { a = "foobar\nbaz"[/foo(bar$)\nbaz/] } }
x.report { 200000.times { a = "foobar\nbaz"[/foo(bar)$\nbaz/] } }
end
puts '--------------------------'
cmVxdWlyZSAnYmVuY2htYXJrJwpCZW5jaG1hcmsuYm1ibSBkbyB8eHwKICAgIHgucmVwb3J0IHsgMjAwMDAwLnRpbWVzIHsgYSA9ICdmb29iYXInWy8oXEFmb28pYmFyL10gfSB9CiAgICB4LnJlcG9ydCB7IDIwMDAwMC50aW1lcyB7IGEgPSAnZm9vYmFyJ1svXEEoZm9vKWJhci9dIH0gfQplbmQKQmVuY2htYXJrLmJtYm0gZG8gfHh8CiAgICB4LnJlcG9ydCB7IDIwMDAwMC50aW1lcyB7IGEgPSAnZm9vYmFyJ1svZm9vKGJhclx6KS9dIH0gfQogICAgeC5yZXBvcnQgeyAyMDAwMDAudGltZXMgeyBhID0gJ2Zvb2JhcidbL2ZvbyhiYXIpXHovXSB9IH0KZW5kCkJlbmNobWFyay5ibWJtIGRvIHx4fAogICAgeC5yZXBvcnQgeyAyMDAwMDAudGltZXMgeyBhID0gImZvb1xuYmFyYmF6IlsvZm9vXG4oXmJhciliYXovXSB9IH0KICAgIHgucmVwb3J0IHsgMjAwMDAwLnRpbWVzIHsgYSA9ICJmb29cbmJhcmJheiJbL2Zvb1xuXihiYXIpYmF6L10gfSB9CmVuZApCZW5jaG1hcmsuYm1ibSBkbyB8eHwKICAgIHgucmVwb3J0IHsgMjAwMDAwLnRpbWVzIHsgYSA9ICJmb29iYXJcbmJheiJbL2ZvbyhiYXIkKVxuYmF6L10gfSB9CiAgICB4LnJlcG9ydCB7IDIwMDAwMC50aW1lcyB7IGEgPSAiZm9vYmFyXG5iYXoiWy9mb28oYmFyKSRcbmJhei9dIH0gfQplbmQKcHV0cyAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0n