Created
November 11, 2019 19:41
-
-
Save fidothe/7d76f60cf2adbb8a2aab8adf21f40192 to your computer and use it in GitHub Desktop.
Benchmark gsub/sub before and after https://github.com/jruby/jruby/pull/5952
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BEFORE: | |
jruby [master] $ benchmark bench/core/string/bench_gsub.rb | |
Warming up -------------------------------------- | |
gsub-string 83.418k i/100ms | |
gsub-regex 120.922k i/100ms | |
gsub-regex-block 82.905k i/100ms | |
gsub-string 96.724k i/100ms | |
gsub-regex 128.786k i/100ms | |
gsub-regex-block 83.732k i/100ms | |
gsub-string 100.446k i/100ms | |
gsub-regex 117.749k i/100ms | |
gsub-regex-block 81.020k i/100ms | |
Calculating ------------------------------------- | |
gsub-string 1.864M (± 5.2%) i/s - 9.341M in 5.028109s | |
gsub-regex 2.821M (± 6.4%) i/s - 14.012M in 4.997615s | |
gsub-regex-block 1.580M (± 3.9%) i/s - 7.940M in 5.033951s | |
gsub-string 1.843M (± 6.2%) i/s - 9.241M in 5.038603s | |
gsub-regex 2.867M (± 4.3%) i/s - 14.365M in 5.020753s | |
gsub-regex-block 1.573M (± 5.1%) i/s - 7.859M in 5.009079s | |
gsub-string 1.901M (± 3.9%) i/s - 9.542M in 5.028879s | |
gsub-regex 2.805M (± 7.5%) i/s - 14.012M in 5.027708s | |
gsub-regex-block 1.557M (± 5.4%) i/s - 7.778M in 5.012116s | |
Comparison: | |
gsub-regex: 2805333.0 i/s | |
gsub-string: 1900607.3 i/s - 1.48x slower | |
gsub-regex-block: 1556662.7 i/s - 1.80x slower | |
AFTER: | |
jruby [use-string-matching-5905] $ benchmark bench/core/string/bench_gsub.rb | |
WARNING: An illegal reflective access operation has occurred | |
WARNING: Illegal reflective access by com.headius.backport9.modules.Modules to method sun.nio.ch.NativeThread.signal(long) | |
WARNING: Please consider reporting this to the maintainers of com.headius.backport9.modules.Modules | |
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations | |
WARNING: All illegal access operations will be denied in a future release | |
Warming up -------------------------------------- | |
gsub-string 132.304k i/100ms | |
gsub-regex 134.161k i/100ms | |
gsub-regex-block 98.747k i/100ms | |
gsub-string 146.478k i/100ms | |
gsub-regex 137.456k i/100ms | |
gsub-regex-block 97.131k i/100ms | |
gsub-string 143.662k i/100ms | |
gsub-regex 140.012k i/100ms | |
gsub-regex-block 96.690k i/100ms | |
Calculating ------------------------------------- | |
gsub-string 2.899M (± 5.5%) i/s - 14.510M in 5.022088s | |
gsub-regex 2.876M (± 8.2%) i/s - 14.281M in 5.012498s | |
gsub-regex-block 1.689M (± 5.3%) i/s - 8.412M in 4.998477s | |
gsub-string 2.967M (± 5.0%) i/s - 14.797M in 5.001599s | |
gsub-regex 2.984M (± 5.0%) i/s - 14.981M in 5.035178s | |
gsub-regex-block 1.671M (± 5.6%) i/s - 8.412M in 5.051254s | |
gsub-string 3.084M (± 3.8%) i/s - 15.515M in 5.039117s | |
gsub-regex 2.894M (± 6.9%) i/s - 14.421M in 5.009674s | |
gsub-regex-block 1.738M (± 3.6%) i/s - 8.702M in 5.013762s | |
Comparison: | |
gsub-string: 3083819.2 i/s | |
gsub-regex: 2893563.9 i/s - same-ish: difference falls within error | |
gsub-regex-block: 1737972.1 i/s - 1.77x slower |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BEFORE: | |
jruby [use-string-matching-5905] $ benchmark bench/core/string/bench_sub.rb | |
Warming up -------------------------------------- | |
sub-string 85.531k i/100ms | |
sub-regex 115.471k i/100ms | |
sub-regex-block 86.421k i/100ms | |
sub-string 112.434k i/100ms | |
sub-regex 139.722k i/100ms | |
sub-regex-block 89.876k i/100ms | |
sub-string 101.295k i/100ms | |
sub-regex 138.565k i/100ms | |
sub-regex-block 87.712k i/100ms | |
Calculating ------------------------------------- | |
sub-string 2.190M (± 7.6%) i/s - 10.940M in 5.025020s | |
sub-regex 3.122M (± 8.9%) i/s - 15.519M in 5.017819s | |
sub-regex-block 1.648M (± 6.9%) i/s - 8.245M in 5.030430s | |
sub-string 2.255M (± 5.5%) i/s - 11.244M in 5.002959s | |
sub-regex 3.310M (± 3.5%) i/s - 16.628M in 5.029668s | |
sub-regex-block 1.654M (± 5.9%) i/s - 8.245M in 5.003373s | |
sub-string 2.301M (± 5.5%) i/s - 11.548M in 5.036839s | |
sub-regex 3.263M (± 6.5%) i/s - 16.351M in 5.033664s | |
sub-regex-block 1.689M (± 3.8%) i/s - 8.508M in 5.044707s | |
Comparison: | |
sub-regex: 3263463.5 i/s | |
sub-string: 2300856.5 i/s - 1.42x slower | |
sub-regex-block: 1689094.8 i/s - 1.93x slower | |
AFTER: | |
jruby [use-string-matching-5905] $ benchmark bench/core/string/bench_sub.rb | |
Warming up -------------------------------------- | |
sub-string 130.911k i/100ms | |
sub-regex 132.331k i/100ms | |
sub-regex-block 97.297k i/100ms | |
sub-string 142.288k i/100ms | |
sub-regex 138.834k i/100ms | |
sub-regex-block 93.862k i/100ms | |
sub-string 140.333k i/100ms | |
sub-regex 134.390k i/100ms | |
sub-regex-block 96.066k i/100ms | |
Calculating ------------------------------------- | |
sub-string 3.286M (± 6.1%) i/s - 16.419M in 5.016219s | |
sub-regex 3.343M (± 5.4%) i/s - 16.664M in 5.000450s | |
sub-regex-block 1.894M (± 5.9%) i/s - 9.511M in 5.041052s | |
sub-string 2.969M (±16.2%) i/s - 14.454M in 5.039208s | |
sub-regex 3.049M (±15.4%) i/s - 14.917M in 5.025439s | |
sub-regex-block 1.858M (± 5.2%) i/s - 9.318M in 5.031101s | |
sub-string 3.383M (± 5.1%) i/s - 16.980M in 5.033060s | |
sub-regex 3.312M (± 6.6%) i/s - 16.530M in 5.015668s | |
sub-regex-block 1.891M (± 5.0%) i/s - 9.511M in 5.042478s | |
Comparison: | |
sub-string: 3383455.0 i/s | |
sub-regex: 3312195.3 i/s - same-ish: difference falls within error | |
sub-regex-block: 1891378.7 i/s - 1.79x slower |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment