diff options
author | Kazuhiro NISHIYAMA <zn@mbf.nifty.com> | 2019-06-03 10:32:32 +0900 |
---|---|---|
committer | Kazuhiro NISHIYAMA <zn@mbf.nifty.com> | 2019-06-03 10:32:32 +0900 |
commit | 533070bfc69cae5b09103a229e4db33b6af695cb (patch) | |
tree | 246fcdf0395e31a6d79bd86ad46ed5260a2a670d | |
parent | 182072b2118ed3d1100303e3c67f54a3ee3d4c33 (diff) | |
download | ruby-533070bfc69cae5b09103a229e4db33b6af695cb.tar.gz |
Use lines instead of split
```
% cat ~/bench-split.yml
prelude: |
s = "foo\nbar\nbaz\n"
benchmark:
'/(?<=\n)/': |
s.split(/(?<=\n)/)
'/^/': |
s.split(/^/)
'lines': |
s.lines
Warming up --------------------------------------
/(?<=\n)/ 459.123k i/s - 467.844k times in 1.018994s (2.18μs/i)
/^/ 467.922k i/s - 469.744k times in 1.003894s (2.14μs/i)
lines 2.343M i/s - 2.424M times in 1.034677s (426.84ns/i)
Calculating -------------------------------------
/(?<=\n)/ 422.347k i/s - 1.377M times in 3.261232s (2.37μs/i)
/^/ 477.603k i/s - 1.404M times in 2.939186s (2.09μs/i)
lines 2.485M i/s - 7.028M times in 2.828757s (402.47ns/i)
Comparison:
lines: 2484631.6 i/s
/^/: 477603.3 i/s - 5.20x slower
/(?<=\n)/: 422346.5 i/s - 5.88x slower
```
-rw-r--r-- | test/reline/test_config.rb | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/test/reline/test_config.rb b/test/reline/test_config.rb index c00c4f8236..1de8ecaf71 100644 --- a/test/reline/test_config.rb +++ b/test/reline/test_config.rb @@ -21,7 +21,7 @@ class Reline::Config::Test < Reline::TestCase end def test_read_lines - @config.read_lines(<<~LINES.split(/^/)) + @config.read_lines(<<~LINES.lines) set bell-style on LINES @@ -71,7 +71,7 @@ class Reline::Config::Test < Reline::TestCase set bell-style on PARTIAL_LINES end - @config.read_lines(<<~LINES.split(/^/)) + @config.read_lines(<<~LINES.lines) $include included_partial LINES @@ -79,7 +79,7 @@ class Reline::Config::Test < Reline::TestCase end def test_if - @config.read_lines(<<~LINES.split(/^/)) + @config.read_lines(<<~LINES.lines) $if Ruby set bell-style audible $else @@ -91,7 +91,7 @@ class Reline::Config::Test < Reline::TestCase end def test_if_with_false - @config.read_lines(<<~LINES.split(/^/)) + @config.read_lines(<<~LINES.lines) $if Python set bell-style audible $else @@ -104,7 +104,7 @@ class Reline::Config::Test < Reline::TestCase def test_if_with_indent %w[Ruby Reline].each do |cond| - @config.read_lines(<<~LINES.split(/^/)) + @config.read_lines(<<~LINES.lines) set bell-style none $if #{cond} set bell-style audible @@ -119,7 +119,7 @@ class Reline::Config::Test < Reline::TestCase def test_unclosed_if e = assert_raise(Reline::Config::InvalidInputrc) do - @config.read_lines(<<~LINES.split(/(?<=\n)/), "INPUTRC") + @config.read_lines(<<~LINES.lines, "INPUTRC") $if Ruby LINES end @@ -128,7 +128,7 @@ class Reline::Config::Test < Reline::TestCase def test_unmatched_else e = assert_raise(Reline::Config::InvalidInputrc) do - @config.read_lines(<<~LINES.split(/(?<=\n)/), "INPUTRC") + @config.read_lines(<<~LINES.lines, "INPUTRC") $else LINES end @@ -137,7 +137,7 @@ class Reline::Config::Test < Reline::TestCase def test_unmatched_endif e = assert_raise(Reline::Config::InvalidInputrc) do - @config.read_lines(<<~LINES.split(/(?<=\n)/), "INPUTRC") + @config.read_lines(<<~LINES.lines, "INPUTRC") $endif LINES end @@ -146,7 +146,7 @@ class Reline::Config::Test < Reline::TestCase def test_default_key_bindings @config.add_default_key_binding('abcd'.bytes, 'EFGH'.bytes) - @config.read_lines(<<~'LINES'.split(/^/)) + @config.read_lines(<<~'LINES'.lines) "abcd": "ABCD" "ijkl": "IJKL" LINES |