Created
November 4, 2025 04:47
-
-
Save headius/15413f657dad8d83c474114f8f9cf26a to your computer and use it in GitHub Desktop.
fast-ruby benchmarks comparing JRuby 10.0.3.0-head with CRuby 3.4.7
This file contains hidden or 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
| $ ruby -e 'files = Dir["code/**/*.rb"]; files.each_with_index {|file, i| puts "#{i+1}/#{files.size}: #{file}"; system "jruby #{file}"; system "/Users/headius/.rubies/ruby-3.4.7/bin/ruby --jit #{file}" }' | |
| 1/68: code/array/array-concat-vs-+.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#concat 289.000 i/100ms | |
| Array#+ 1.000 i/100ms | |
| Calculating ------------------------------------- | |
| Array#concat 3.037k (± 1.1%) i/s (329.29 μs/i) - 15.317k in 5.044432s | |
| Array#+ 13.653 (± 0.0%) i/s (73.24 ms/i) - 69.000 in 5.059999s | |
| Comparison: | |
| Array#concat: 3036.8 i/s | |
| Array#+: 13.7 i/s - 222.43x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#concat 164.000 i/100ms | |
| Array#+ 1.000 i/100ms | |
| Calculating ------------------------------------- | |
| Array#concat 1.456k (± 3.6%) i/s (686.71 μs/i) - 7.380k in 5.075646s | |
| Array#+ 3.420 (± 0.0%) i/s (292.42 ms/i) - 18.000 in 5.286420s | |
| Comparison: | |
| Array#concat: 1456.2 i/s | |
| Array#+: 3.4 i/s - 425.83x slower | |
| 2/68: code/array/array-first-vs-index.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#[0] 1.692M i/100ms | |
| Array#first 1.803M i/100ms | |
| Calculating ------------------------------------- | |
| Array#[0] 139.774M (±19.3%) i/s (7.15 ns/i) - 550.019M in 5.001346s | |
| Array#first 149.433M (±22.6%) i/s (6.69 ns/i) - 539.074M in 4.998836s | |
| Comparison: | |
| Array#first: 149432579.2 i/s | |
| Array#[0]: 139774108.6 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#[0] 4.662M i/100ms | |
| Array#first 4.435M i/100ms | |
| Calculating ------------------------------------- | |
| Array#[0] 63.141M (± 5.9%) i/s (15.84 ns/i) - 317.022M in 5.049422s | |
| Array#first 61.177M (± 2.7%) i/s (16.35 ns/i) - 306.001M in 5.005671s | |
| Comparison: | |
| Array#[0]: 63141486.4 i/s | |
| Array#first: 61177483.2 i/s - same-ish: difference falls within error | |
| 3/68: code/array/array-last-vs-index.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#[-1] 1.618M i/100ms | |
| Array#last 1.659M i/100ms | |
| Calculating ------------------------------------- | |
| Array#[-1] 125.315M (±27.9%) i/s (7.98 ns/i) - 297.669M in 5.005618s | |
| Array#last 141.013M (±25.9%) i/s (7.09 ns/i) - 353.470M in 4.999853s | |
| Comparison: | |
| Array#last: 141013400.0 i/s | |
| Array#[-1]: 125315294.6 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#[-1] 4.488M i/100ms | |
| Array#last 4.418M i/100ms | |
| Calculating ------------------------------------- | |
| Array#[-1] 64.548M (± 1.4%) i/s (15.49 ns/i) - 323.117M in 5.006857s | |
| Array#last 60.672M (± 2.3%) i/s (16.48 ns/i) - 304.815M in 5.026823s | |
| Comparison: | |
| Array#[-1]: 64547807.4 i/s | |
| Array#last: 60671621.5 i/s - 1.06x slower | |
| 4/68: code/array/array-new-vs-fixnum-times-map.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#new 632.276k i/100ms | |
| Fixnum#times + map 281.039k i/100ms | |
| Calculating ------------------------------------- | |
| Array#new 9.899M (±19.6%) i/s (101.02 ns/i) - 47.421M in 5.042800s | |
| Fixnum#times + map 3.085M (±12.9%) i/s (324.19 ns/i) - 15.176M in 5.008429s | |
| Comparison: | |
| Array#new: 9899160.9 i/s | |
| Fixnum#times + map: 3084634.9 i/s - 3.21x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#new 473.884k i/100ms | |
| Fixnum#times + map 274.423k i/100ms | |
| Calculating ------------------------------------- | |
| Array#new 5.028M (± 1.9%) i/s (198.89 ns/i) - 25.590M in 5.091458s | |
| Fixnum#times + map 2.920M (± 2.0%) i/s (342.41 ns/i) - 14.819M in 5.076252s | |
| Comparison: | |
| Array#new: 5027944.2 i/s | |
| Fixnum#times + map: 2920461.1 i/s - 1.72x slower | |
| 5/68: code/array/bsearch-vs-find.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| find 1.000 i/100ms | |
| bsearch 353.536k i/100ms | |
| Calculating ------------------------------------- | |
| find 0.939 (± 0.0%) i/s (1.06 s/i) - 5.000 in 5.381076s | |
| bsearch 3.455M (±30.7%) i/s (289.47 ns/i) - 15.909M in 5.122523s | |
| Comparison: | |
| bsearch: 3454573.1 i/s | |
| find: 0.9 i/s - 3677531.90x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| find 1.000 i/100ms | |
| bsearch 223.976k i/100ms | |
| Calculating ------------------------------------- | |
| find 0.538 (± 0.0%) i/s (1.86 s/i) - 3.000 in 5.576027s | |
| bsearch 2.293M (± 1.7%) i/s (436.15 ns/i) - 11.647M in 5.081265s | |
| Comparison: | |
| bsearch: 2292811.9 i/s | |
| find: 0.5 i/s - 4261489.72x slower | |
| 6/68: code/array/insert-vs-unshift.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#unshift 1.000 i/100ms | |
| Array#insert 1.000 i/100ms | |
| Calculating ------------------------------------- | |
| Array#unshift 2.923 (± 0.0%) i/s (342.12 ms/i) - 15.000 in 5.140667s | |
| Array#insert 2.976 (± 0.0%) i/s (336.04 ms/i) - 15.000 in 5.040885s | |
| Comparison: | |
| Array#insert: 3.0 i/s | |
| Array#unshift: 2.9 i/s - 1.02x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#unshift 100.000 i/100ms | |
| Array#insert 1.000 i/100ms | |
| Calculating ------------------------------------- | |
| Array#unshift 1.001k (± 4.6%) i/s (999.30 μs/i) - 5.000k in 5.007383s | |
| Array#insert 1.649 (± 0.0%) i/s (606.50 ms/i) - 9.000 in 5.459798s | |
| Comparison: | |
| Array#unshift: 1000.7 i/s | |
| Array#insert: 1.6 i/s - 606.93x slower | |
| 7/68: code/array/length-vs-size-vs-count.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#length 1.023M i/100ms | |
| Array#size 1.033M i/100ms | |
| Array#count 1.031M i/100ms | |
| Calculating ------------------------------------- | |
| Array#length 151.628M (±15.5%) i/s (6.60 ns/i) - 641.290M in 4.999864s | |
| Array#size 150.605M (±15.3%) i/s (6.64 ns/i) - 638.399M in 5.003935s | |
| Array#count 149.240M (±15.0%) i/s (6.70 ns/i) - 634.371M in 4.999961s | |
| Comparison: | |
| Array#length: 151627762.5 i/s | |
| Array#size: 150605071.1 i/s - same-ish: difference falls within error | |
| Array#count: 149239899.6 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#length 5.370M i/100ms | |
| Array#size 5.444M i/100ms | |
| Array#count 4.659M i/100ms | |
| Calculating ------------------------------------- | |
| Array#length 81.687M (± 0.4%) i/s (12.24 ns/i) - 413.506M in 5.062129s | |
| Array#size 80.844M (± 0.8%) i/s (12.37 ns/i) - 408.284M in 5.050586s | |
| Array#count 62.770M (± 1.0%) i/s (15.93 ns/i) - 316.825M in 5.047892s | |
| Comparison: | |
| Array#length: 81687219.4 i/s | |
| Array#size: 80844376.5 i/s - same-ish: difference falls within error | |
| Array#count: 62770029.7 i/s - 1.30x slower | |
| 8/68: code/array/shuffle-first-vs-sample.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#shuffle.first 79.560k i/100ms | |
| Array#sample 1.462M i/100ms | |
| Calculating ------------------------------------- | |
| Array#shuffle.first 840.223k (± 3.3%) i/s (1.19 μs/i) - 4.217M in 5.024343s | |
| Array#sample 66.948M (±22.9%) i/s (14.94 ns/i) - 274.777M in 4.998980s | |
| Comparison: | |
| Array#sample: 66947518.7 i/s | |
| Array#shuffle.first: 840223.0 i/s - 79.68x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#shuffle.first 87.698k i/100ms | |
| Array#sample 3.208M i/100ms | |
| Calculating ------------------------------------- | |
| Array#shuffle.first 899.621k (± 1.6%) i/s (1.11 μs/i) - 4.560M in 5.070471s | |
| Array#sample 40.593M (± 1.5%) i/s (24.63 ns/i) - 205.321M in 5.059246s | |
| Comparison: | |
| Array#sample: 40592954.4 i/s | |
| Array#shuffle.first: 899621.2 i/s - 45.12x slower | |
| 9/68: code/array/sort-reverse-vs-sort_by-with-block.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#sort.reverse 45.833k i/100ms | |
| Array#sort_by &:-@ 14.651k i/100ms | |
| Calculating ------------------------------------- | |
| Array#sort.reverse 464.612k (± 2.2%) i/s (2.15 μs/i) - 2.337M in 5.033456s | |
| Array#sort_by &:-@ 137.573k (± 8.4%) i/s (7.27 μs/i) - 688.597k in 5.043389s | |
| Comparison: | |
| Array#sort.reverse: 464611.5 i/s | |
| Array#sort_by &:-@: 137572.8 i/s - 3.38x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#sort.reverse 54.899k i/100ms | |
| Array#sort_by &:-@ 23.572k i/100ms | |
| Calculating ------------------------------------- | |
| Array#sort.reverse 561.315k (± 0.8%) i/s (1.78 μs/i) - 2.855M in 5.086127s | |
| Array#sort_by &:-@ 235.759k (± 4.3%) i/s (4.24 μs/i) - 1.179M in 5.011222s | |
| Comparison: | |
| Array#sort.reverse: 561315.2 i/s | |
| Array#sort_by &:-@: 235759.1 i/s - 2.38x slower | |
| 10/68: code/date/iso8601-vs-parse.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Date.iso8601 179.298k i/100ms | |
| Date.parse 131.232k i/100ms | |
| Calculating ------------------------------------- | |
| Date.iso8601 1.940M (± 7.3%) i/s (515.36 ns/i) - 9.682M in 5.019914s | |
| Date.parse 1.433M (± 4.9%) i/s (697.65 ns/i) - 7.218M in 5.048060s | |
| Comparison: | |
| Date.iso8601: 1940376.7 i/s | |
| Date.parse: 1433390.6 i/s - 1.35x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Date.iso8601 193.365k i/100ms | |
| Date.parse 90.766k i/100ms | |
| Calculating ------------------------------------- | |
| Date.iso8601 2.079M (± 0.6%) i/s (481.04 ns/i) - 10.442M in 5.023091s | |
| Date.parse 922.638k (± 1.5%) i/s (1.08 μs/i) - 4.629M in 5.018419s | |
| Comparison: | |
| Date.iso8601: 2078813.3 i/s | |
| Date.parse: 922638.2 i/s - 2.25x slower | |
| 11/68: code/enumerable/each-push-vs-map.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#each + push 81.928k i/100ms | |
| Array#map 119.836k i/100ms | |
| Calculating ------------------------------------- | |
| Array#each + push 837.308k (± 2.5%) i/s (1.19 μs/i) - 4.260M in 5.091426s | |
| Array#map 1.225M (± 2.8%) i/s (816.31 ns/i) - 6.231M in 5.091113s | |
| Comparison: | |
| Array#map: 1225020.6 i/s | |
| Array#each + push: 837307.8 i/s - 1.46x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#each + push 84.064k i/100ms | |
| Array#map 125.918k i/100ms | |
| Calculating ------------------------------------- | |
| Array#each + push 878.012k (± 1.4%) i/s (1.14 μs/i) - 4.455M in 5.075490s | |
| Array#map 1.296M (± 0.7%) i/s (771.36 ns/i) - 6.548M in 5.050888s | |
| Comparison: | |
| Array#map: 1296410.4 i/s | |
| Array#each + push: 878012.2 i/s - 1.48x slower | |
| 12/68: code/enumerable/each-vs-for-loop.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| For loop 114.452k i/100ms | |
| #each 132.086k i/100ms | |
| Calculating ------------------------------------- | |
| For loop 1.184M (± 3.4%) i/s (844.83 ns/i) - 5.952M in 5.033887s | |
| #each 1.379M (± 4.2%) i/s (725.20 ns/i) - 7.001M in 5.085950s | |
| Comparison: | |
| #each: 1378933.4 i/s | |
| For loop: 1183672.3 i/s - 1.16x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| For loop 196.093k i/100ms | |
| #each 249.295k i/100ms | |
| Calculating ------------------------------------- | |
| For loop 2.002M (± 1.3%) i/s (499.60 ns/i) - 10.197M in 5.095157s | |
| #each 2.498M (± 1.8%) i/s (400.32 ns/i) - 12.714M in 5.091509s | |
| Comparison: | |
| #each: 2497981.1 i/s | |
| For loop: 2001602.4 i/s - 1.25x slower | |
| 13/68: code/enumerable/each_with_index-vs-while-loop.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| While Loop 239.045k i/100ms | |
| each_with_index 75.294k i/100ms | |
| Calculating ------------------------------------- | |
| While Loop 2.519M (± 6.7%) i/s (396.94 ns/i) - 12.669M in 5.052241s | |
| each_with_index 707.403k (± 3.8%) i/s (1.41 μs/i) - 3.539M in 5.010123s | |
| Comparison: | |
| While Loop: 2519283.2 i/s | |
| each_with_index: 707403.3 i/s - 3.56x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| While Loop 362.920k i/100ms | |
| each_with_index 42.902k i/100ms | |
| Calculating ------------------------------------- | |
| While Loop 3.738M (± 0.8%) i/s (267.55 ns/i) - 18.872M in 5.049501s | |
| each_with_index 436.295k (± 2.3%) i/s (2.29 μs/i) - 2.188M in 5.017584s | |
| Comparison: | |
| While Loop: 3737617.4 i/s | |
| each_with_index: 436294.8 i/s - 8.57x slower | |
| 14/68: code/enumerable/inject-symbol-vs-block.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| inject symbol 12.343k i/100ms | |
| inject to_proc 3.352k i/100ms | |
| inject block 5.672k i/100ms | |
| Calculating ------------------------------------- | |
| inject symbol 134.599k (± 1.7%) i/s (7.43 μs/i) - 678.865k in 5.045163s | |
| inject to_proc 32.326k (± 2.1%) i/s (30.93 μs/i) - 164.248k in 5.083392s | |
| inject block 57.405k (± 1.4%) i/s (17.42 μs/i) - 289.272k in 5.040216s | |
| Comparison: | |
| inject symbol: 134599.4 i/s | |
| inject block: 57404.7 i/s - 2.34x slower | |
| inject to_proc: 32326.2 i/s - 4.16x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| inject symbol 178.806k i/100ms | |
| inject to_proc 4.637k i/100ms | |
| inject block 4.981k i/100ms | |
| Calculating ------------------------------------- | |
| inject symbol 1.828M (± 0.5%) i/s (547.17 ns/i) - 9.298M in 5.087682s | |
| inject to_proc 46.469k (± 0.5%) i/s (21.52 μs/i) - 236.487k in 5.089287s | |
| inject block 49.789k (± 1.8%) i/s (20.08 μs/i) - 249.050k in 5.003825s | |
| Comparison: | |
| inject symbol: 1827576.1 i/s | |
| inject block: 49789.2 i/s - 36.71x slower | |
| inject to_proc: 46468.6 i/s - 39.33x slower | |
| 15/68: code/enumerable/map-flatten-vs-flat_map.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#map.flatten(1) 31.610k i/100ms | |
| Array#map.flatten 10.797k i/100ms | |
| Array#flat_map 49.686k i/100ms | |
| Calculating ------------------------------------- | |
| Array#map.flatten(1) 313.233k (± 1.8%) i/s (3.19 μs/i) - 1.580M in 5.047510s | |
| Array#map.flatten 108.452k (± 0.7%) i/s (9.22 μs/i) - 550.647k in 5.077591s | |
| Array#flat_map 492.829k (± 1.7%) i/s (2.03 μs/i) - 2.484M in 5.042347s | |
| Comparison: | |
| Array#flat_map: 492828.9 i/s | |
| Array#map.flatten(1): 313232.9 i/s - 1.57x slower | |
| Array#map.flatten: 108451.8 i/s - 4.54x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#map.flatten(1) 23.202k i/100ms | |
| Array#map.flatten 9.816k i/100ms | |
| Array#flat_map 23.911k i/100ms | |
| Calculating ------------------------------------- | |
| Array#map.flatten(1) 236.296k (± 2.0%) i/s (4.23 μs/i) - 1.183M in 5.009771s | |
| Array#map.flatten 95.187k (± 0.7%) i/s (10.51 μs/i) - 480.984k in 5.053254s | |
| Array#flat_map 236.921k (± 1.7%) i/s (4.22 μs/i) - 1.196M in 5.047618s | |
| Comparison: | |
| Array#flat_map: 236920.7 i/s | |
| Array#map.flatten(1): 236295.9 i/s - same-ish: difference falls within error | |
| Array#map.flatten: 95187.1 i/s - 2.49x slower | |
| 16/68: code/enumerable/reverse-each-vs-reverse_each.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Array#reverse.each 116.195k i/100ms | |
| Array#reverse_each 136.179k i/100ms | |
| Calculating ------------------------------------- | |
| Array#reverse.each 1.226M (± 7.6%) i/s (815.42 ns/i) - 6.158M in 5.057447s | |
| Array#reverse_each 1.407M (± 7.7%) i/s (710.63 ns/i) - 7.081M in 5.081461s | |
| Comparison: | |
| Array#reverse_each: 1407211.3 i/s | |
| Array#reverse.each: 1226360.0 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Array#reverse.each 202.806k i/100ms | |
| Array#reverse_each 70.936k i/100ms | |
| Calculating ------------------------------------- | |
| Array#reverse.each 1.977M (± 1.1%) i/s (505.82 ns/i) - 9.937M in 5.027224s | |
| Array#reverse_each 732.096k (± 1.8%) i/s (1.37 μs/i) - 3.689M in 5.040180s | |
| Comparison: | |
| Array#reverse.each: 1976988.2 i/s | |
| Array#reverse_each: 732096.4 i/s - 2.70x slower | |
| 17/68: code/enumerable/select-first-vs-detect.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Enumerable#select.first | |
| 106.031k i/100ms | |
| Enumerable#detect 493.965k i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#select.first | |
| 1.173M (± 2.1%) i/s (852.68 ns/i) - 23.539M in 20.080133s | |
| Enumerable#detect 6.649M (±11.4%) i/s (150.40 ns/i) - 130.901M in 20.024575s | |
| Comparison: | |
| Enumerable#detect: 6648770.4 i/s | |
| Enumerable#select.first: 1172774.2 i/s - 5.67x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Enumerable#select.first | |
| 114.682k i/100ms | |
| Enumerable#detect 182.864k i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#select.first | |
| 1.241M (± 2.2%) i/s (805.96 ns/i) - 24.886M in 20.066692s | |
| Enumerable#detect 1.908M (± 1.1%) i/s (524.22 ns/i) - 38.219M in 20.037805s | |
| Comparison: | |
| Enumerable#detect: 1907578.8 i/s | |
| Enumerable#select.first: 1240758.0 i/s - 1.54x slower | |
| 18/68: code/enumerable/select-last-vs-reverse-detect.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Enumerable#reverse.detect | |
| 14.204k i/100ms | |
| Enumerable#select.last | |
| 985.000 i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#reverse.detect | |
| 143.214k (± 2.0%) i/s (6.98 μs/i) - 724.404k in 5.060228s | |
| Enumerable#select.last | |
| 8.664k (± 0.7%) i/s (115.42 μs/i) - 43.340k in 5.002338s | |
| Comparison: | |
| Enumerable#reverse.detect: 143213.6 i/s | |
| Enumerable#select.last: 8664.3 i/s - 16.53x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Enumerable#reverse.detect | |
| 17.640k i/100ms | |
| Enumerable#select.last | |
| 2.133k i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#reverse.detect | |
| 180.088k (± 1.9%) i/s (5.55 μs/i) - 917.280k in 5.095455s | |
| Enumerable#select.last | |
| 21.354k (± 0.8%) i/s (46.83 μs/i) - 108.783k in 5.094574s | |
| Comparison: | |
| Enumerable#reverse.detect: 180088.3 i/s | |
| Enumerable#select.last: 21354.2 i/s - 8.43x slower | |
| 19/68: code/enumerable/sort-vs-sort_by.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Enumerable#sort_by (Symbol#to_proc) | |
| 13.718k i/100ms | |
| Enumerable#sort_by 14.667k i/100ms | |
| Enumerable#sort 9.575k i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#sort_by (Symbol#to_proc) | |
| 129.957k (± 1.9%) i/s (7.69 μs/i) - 658.464k in 5.068744s | |
| Enumerable#sort_by 127.999k (± 0.7%) i/s (7.81 μs/i) - 645.348k in 5.042090s | |
| Enumerable#sort 94.807k (± 1.2%) i/s (10.55 μs/i) - 478.750k in 5.050518s | |
| Comparison: | |
| Enumerable#sort_by (Symbol#to_proc): 129957.0 i/s | |
| Enumerable#sort_by: 127998.8 i/s - same-ish: difference falls within error | |
| Enumerable#sort: 94807.0 i/s - 1.37x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Enumerable#sort_by (Symbol#to_proc) | |
| 16.128k i/100ms | |
| Enumerable#sort_by 15.147k i/100ms | |
| Enumerable#sort 6.378k i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#sort_by (Symbol#to_proc) | |
| 154.039k (± 2.5%) i/s (6.49 μs/i) - 774.144k in 5.028711s | |
| Enumerable#sort_by 157.595k (± 2.2%) i/s (6.35 μs/i) - 787.644k in 5.000467s | |
| Enumerable#sort 64.114k (± 1.1%) i/s (15.60 μs/i) - 325.278k in 5.074097s | |
| Comparison: | |
| Enumerable#sort_by: 157594.9 i/s | |
| Enumerable#sort_by (Symbol#to_proc): 154039.1 i/s - same-ish: difference falls within error | |
| Enumerable#sort: 64113.8 i/s - 2.46x slower | |
| 20/68: code/enumerable/sort_by-first-vs-min_by.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Enumerable#min_by 51.322k i/100ms | |
| Enumerable#sort_by...first | |
| 45.253k i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#min_by 544.566k (± 2.9%) i/s (1.84 μs/i) - 2.720M in 4.999239s | |
| Enumerable#sort_by...first | |
| 440.197k (± 2.3%) i/s (2.27 μs/i) - 2.217M in 5.040002s | |
| Comparison: | |
| Enumerable#min_by: 544566.5 i/s | |
| Enumerable#sort_by...first: 440197.0 i/s - 1.24x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Enumerable#min_by 52.267k i/100ms | |
| Enumerable#sort_by...first | |
| 38.106k i/100ms | |
| Calculating ------------------------------------- | |
| Enumerable#min_by 525.028k (± 0.4%) i/s (1.90 μs/i) - 2.666M in 5.077174s | |
| Enumerable#sort_by...first | |
| 383.153k (± 1.4%) i/s (2.61 μs/i) - 1.943M in 5.073186s | |
| Comparison: | |
| Enumerable#min_by: 525028.0 i/s | |
| Enumerable#sort_by...first: 383153.4 i/s - 1.37x slower | |
| 21/68: code/general/array-argument-vs-splat-arguments.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Function with single Array argument | |
| 1.604M i/100ms | |
| Function with splat arguments | |
| 91.797k i/100ms | |
| Calculating ------------------------------------- | |
| Function with single Array argument | |
| 109.686M (±19.3%) i/s (9.12 ns/i) - 449.141M in 5.004273s | |
| Function with splat arguments | |
| 928.453k (± 4.7%) i/s (1.08 μs/i) - 4.682M in 5.056724s | |
| Comparison: | |
| Function with single Array argument: 109686099.4 i/s | |
| Function with splat arguments: 928452.5 i/s - 118.14x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Function with single Array argument | |
| 4.631M i/100ms | |
| Function with splat arguments | |
| 4.437M i/100ms | |
| Calculating ------------------------------------- | |
| Function with single Array argument | |
| 62.683M (± 1.7%) i/s (15.95 ns/i) - 314.906M in 5.025306s | |
| Function with splat arguments | |
| 58.063M (± 5.1%) i/s (17.22 ns/i) - 292.812M in 5.064637s | |
| Comparison: | |
| Function with single Array argument: 62682887.3 i/s | |
| Function with splat arguments: 58062909.7 i/s - 1.08x slower | |
| 22/68: code/general/attr-accessor-vs-getter-and-setter.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| getter_and_setter 1.544M i/100ms | |
| attr_accessor 1.585M i/100ms | |
| Calculating ------------------------------------- | |
| getter_and_setter 91.700M (±22.5%) i/s (10.91 ns/i) - 365.927M in 5.001198s | |
| attr_accessor 91.383M (±21.6%) i/s (10.94 ns/i) - 372.520M in 5.011595s | |
| Comparison: | |
| getter_and_setter: 91699753.2 i/s | |
| attr_accessor: 91382816.1 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| getter_and_setter 1.321M i/100ms | |
| attr_accessor 1.402M i/100ms | |
| Calculating ------------------------------------- | |
| getter_and_setter 15.125M (± 1.3%) i/s (66.12 ns/i) - 76.599M in 5.065262s | |
| attr_accessor 15.627M (± 0.7%) i/s (63.99 ns/i) - 78.507M in 5.023972s | |
| Comparison: | |
| attr_accessor: 15627284.4 i/s | |
| getter_and_setter: 15125104.3 i/s - 1.03x slower | |
| 23/68: code/general/begin-rescue-vs-respond-to.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| begin...rescue 259.142k i/100ms | |
| respond_to? 1.053M i/100ms | |
| Calculating ------------------------------------- | |
| begin...rescue 2.863M (± 8.2%) i/s (349.31 ns/i) - 14.253M in 5.013499s | |
| respond_to? 40.748M (±25.6%) i/s (24.54 ns/i) - 167.468M in 5.000022s | |
| Comparison: | |
| respond_to?: 40747802.4 i/s | |
| begin...rescue: 2862755.4 i/s - 14.23x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| begin...rescue 233.859k i/100ms | |
| respond_to? 2.733M i/100ms | |
| Calculating ------------------------------------- | |
| begin...rescue 2.307M (± 2.1%) i/s (433.47 ns/i) - 11.693M in 5.070676s | |
| respond_to? 32.611M (± 0.4%) i/s (30.66 ns/i) - 163.972M in 5.028237s | |
| Comparison: | |
| respond_to?: 32610708.6 i/s | |
| begin...rescue: 2306964.7 i/s - 14.14x slower | |
| 24/68: code/general/block-apply-method.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| normal 900.554k i/100ms | |
| &method 584.011k i/100ms | |
| Calculating ------------------------------------- | |
| normal 16.630M (±22.4%) i/s (60.13 ns/i) - 77.448M in 5.023276s | |
| &method 7.686M (±16.8%) i/s (130.10 ns/i) - 37.377M in 5.023526s | |
| Comparison: | |
| normal: 16629686.6 i/s | |
| &method: 7686358.0 i/s - 2.16x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| normal 1.220M i/100ms | |
| &method 288.496k i/100ms | |
| Calculating ------------------------------------- | |
| normal 7.431M (±13.1%) i/s (134.58 ns/i) - 36.600M in 5.010952s | |
| &method 2.453M (±18.8%) i/s (407.61 ns/i) - 11.828M in 5.019798s | |
| Comparison: | |
| normal: 7430597.6 i/s | |
| &method: 2453343.3 i/s - 3.03x slower | |
| 25/68: code/general/constantize-vs-comparison.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| using an if statement | |
| 1.195M i/100ms | |
| String#constantize 1.126M i/100ms | |
| Calculating ------------------------------------- | |
| using an if statement | |
| 58.698M (±22.8%) i/s (17.04 ns/i) - 242.519M in 5.006992s | |
| String#constantize 40.882M (±24.4%) i/s (24.46 ns/i) - 173.333M in 5.006453s | |
| Comparison: | |
| using an if statement: 58698364.1 i/s | |
| String#constantize: 40882456.7 i/s - same-ish: difference falls within error | |
| <internal:/Users/headius/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require': cannot load such file -- active_support/core_ext/string/inflections.rb (LoadError) | |
| from <internal:/Users/headius/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require' | |
| from code/general/constantize-vs-comparison.rb:1:in '<main>' | |
| 26/68: code/general/define_method-vs-module-eval.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| module_eval with string | |
| 663.000 i/100ms | |
| define_method 1.656k i/100ms | |
| Calculating ------------------------------------- | |
| module_eval with string | |
| 7.096k (±21.9%) i/s (140.93 μs/i) - 33.813k in 5.070870s | |
| define_method 11.409k (±23.1%) i/s (87.65 μs/i) - 54.648k in 5.114822s | |
| Comparison: | |
| define_method: 11408.8 i/s | |
| module_eval with string: 7095.6 i/s - 1.61x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| module_eval with string | |
| 581.000 i/100ms | |
| define_method 581.000 i/100ms | |
| Calculating ------------------------------------- | |
| module_eval with string | |
| 5.871k (±21.4%) i/s (170.33 μs/i) - 27.307k in 5.036301s | |
| define_method 7.839k (±18.1%) i/s (127.56 μs/i) - 37.184k in 5.057675s | |
| Comparison: | |
| define_method: 7839.5 i/s | |
| module_eval with string: 5870.9 i/s - same-ish: difference falls within error | |
| 27/68: code/general/format-vs-round-and-to-s.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Float#round 220.168k i/100ms | |
| Kernel#format 247.548k i/100ms | |
| String#% 365.477k i/100ms | |
| Calculating ------------------------------------- | |
| Float#round 3.541M (±11.2%) i/s (282.39 ns/i) - 17.613M in 5.044795s | |
| Kernel#format 4.389M (± 9.7%) i/s (227.85 ns/i) - 21.784M in 5.019593s | |
| String#% 4.673M (±12.2%) i/s (213.99 ns/i) - 23.025M in 5.010207s | |
| Comparison: | |
| String#%: 4673068.5 i/s | |
| Kernel#format: 4388846.8 i/s - same-ish: difference falls within error | |
| Float#round: 3541142.6 i/s - 1.32x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Float#round 294.562k i/100ms | |
| Kernel#format 529.872k i/100ms | |
| String#% 475.911k i/100ms | |
| Calculating ------------------------------------- | |
| Float#round 3.913M (±13.4%) i/s (255.54 ns/i) - 19.147M in 5.007875s | |
| Kernel#format 4.386M (±16.0%) i/s (228.00 ns/i) - 21.725M in 5.104095s | |
| String#% 4.908M (± 9.7%) i/s (203.76 ns/i) - 24.747M in 5.104908s | |
| Comparison: | |
| String#%: 4907816.9 i/s | |
| Kernel#format: 4386053.4 i/s - same-ish: difference falls within error | |
| Float#round: 3913286.7 i/s - same-ish: difference falls within error | |
| 28/68: code/general/hash-vs-openstruct-on-access.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash 1.270M i/100ms | |
| OpenStruct 743.375k i/100ms | |
| Calculating ------------------------------------- | |
| Hash 66.438M (±28.0%) i/s (15.05 ns/i) - 248.920M in 5.008483s | |
| OpenStruct 12.803M (±23.4%) i/s (78.11 ns/i) - 60.213M in 5.049277s | |
| Comparison: | |
| Hash: 66437558.7 i/s | |
| OpenStruct: 12802780.7 i/s - 5.19x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash 2.198M i/100ms | |
| OpenStruct 1.340M i/100ms | |
| Calculating ------------------------------------- | |
| Hash 27.079M (± 4.2%) i/s (36.93 ns/i) - 136.298M in 5.042802s | |
| OpenStruct 16.237M (± 0.8%) i/s (61.59 ns/i) - 81.710M in 5.032771s | |
| Comparison: | |
| Hash: 27079451.1 i/s | |
| OpenStruct: 16236584.5 i/s - 1.67x slower | |
| 29/68: code/general/hash-vs-openstruct.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash 1.408M i/100ms | |
| OpenStruct 64.442k i/100ms | |
| Calculating ------------------------------------- | |
| Hash 43.522M (±29.8%) i/s (22.98 ns/i) - 178.847M in 5.025162s | |
| OpenStruct 633.714k (±10.7%) i/s (1.58 μs/i) - 3.158M in 5.038647s | |
| Comparison: | |
| Hash: 43522087.7 i/s | |
| OpenStruct: 633714.4 i/s - 68.68x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash 2.651M i/100ms | |
| OpenStruct 26.064k i/100ms | |
| Calculating ------------------------------------- | |
| Hash 30.948M (± 4.6%) i/s (32.31 ns/i) - 156.401M in 5.066532s | |
| OpenStruct 294.069k (± 2.5%) i/s (3.40 μs/i) - 1.486M in 5.055509s | |
| Comparison: | |
| Hash: 30947938.4 i/s | |
| OpenStruct: 294069.0 i/s - 105.24x slower | |
| 30/68: code/general/inheritance-check.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| less than or equal 1.081M i/100ms | |
| ancestors.include? 421.980k i/100ms | |
| Calculating ------------------------------------- | |
| less than or equal 25.982M (±25.6%) i/s (38.49 ns/i) - 114.542M in 4.999702s | |
| ancestors.include? 5.196M (±11.7%) i/s (192.44 ns/i) - 25.741M in 5.031213s | |
| Comparison: | |
| less than or equal: 25981917.0 i/s | |
| ancestors.include?: 5196487.6 i/s - 5.00x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| less than or equal 3.082M i/100ms | |
| ancestors.include? 198.999k i/100ms | |
| Calculating ------------------------------------- | |
| less than or equal 35.257M (± 3.8%) i/s (28.36 ns/i) - 178.760M in 5.078661s | |
| ancestors.include? 2.124M (± 8.6%) i/s (470.70 ns/i) - 10.547M in 5.013891s | |
| Comparison: | |
| less than or equal: 35257395.5 i/s | |
| ancestors.include?: 2124473.7 i/s - 16.60x slower | |
| 31/68: code/general/loop-vs-while-true.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| While Loop 1.000 i/100ms | |
| Kernel loop 1.000 i/100ms | |
| Calculating ------------------------------------- | |
| While Loop 4.550 (± 0.0%) i/s (219.78 ms/i) - 23.000 in 5.059162s | |
| Kernel loop 0.819 (± 0.0%) i/s (1.22 s/i) - 5.000 in 6.102952s | |
| Comparison: | |
| While Loop: 4.5 i/s | |
| Kernel loop: 0.8 i/s - 5.55x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| While Loop 1.000 i/100ms | |
| Kernel loop 1.000 i/100ms | |
| Calculating ------------------------------------- | |
| While Loop 1.104 (± 0.0%) i/s (905.58 ms/i) - 6.000 in 5.441366s | |
| Kernel loop 1.074 (± 0.0%) i/s (931.06 ms/i) - 6.000 in 5.587214s | |
| Comparison: | |
| While Loop: 1.1 i/s | |
| Kernel loop: 1.1 i/s - 1.03x slower | |
| 32/68: code/general/raise-vs-e2mmap.rb | |
| Ignoring resolv-0.6.3 because its extensions are not built. Try: gem pristine resolv --version 0.6.3 | |
| LoadError: cannot load such file -- e2mmap | |
| require at org/jruby/RubyKernel.java:1193 | |
| require at /Users/headius/work/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:136 | |
| <main> at code/general/raise-vs-e2mmap.rb:2 | |
| <internal:/Users/headius/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require': cannot load such file -- e2mmap (LoadError) | |
| from <internal:/Users/headius/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require' | |
| from code/general/raise-vs-e2mmap.rb:2:in '<main>' | |
| 33/68: code/hash/bracket-vs-dup.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash[] 850.178k i/100ms | |
| Hash#dup 747.376k i/100ms | |
| Calculating ------------------------------------- | |
| Hash[] 14.369M (±19.7%) i/s (69.60 ns/i) - 68.014M in 5.007168s | |
| Hash#dup 11.931M (±19.7%) i/s (83.81 ns/i) - 56.801M in 5.030377s | |
| Comparison: | |
| Hash[]: 14368600.2 i/s | |
| Hash#dup: 11931360.6 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash[] 784.234k i/100ms | |
| Hash#dup 611.692k i/100ms | |
| Calculating ------------------------------------- | |
| Hash[] 6.480M (±20.8%) i/s (154.32 ns/i) - 31.369M in 5.056335s | |
| Hash#dup 5.611M (±12.5%) i/s (178.23 ns/i) - 27.526M in 5.001331s | |
| Comparison: | |
| Hash[]: 6480130.5 i/s | |
| Hash#dup: 5610837.3 i/s - same-ish: difference falls within error | |
| 34/68: code/hash/bracket-vs-fetch.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#[], symbol 979.134k i/100ms | |
| Hash#fetch, symbol 1.174M i/100ms | |
| Hash#[], string 1.340M i/100ms | |
| Hash#fetch, string 1.297M i/100ms | |
| Calculating ------------------------------------- | |
| Hash#[], symbol 95.951M (±30.1%) i/s (10.42 ns/i) - 325.072M in 5.000547s | |
| Hash#fetch, symbol 125.486M (±18.3%) i/s (7.97 ns/i) - 505.995M in 4.999148s | |
| Hash#[], string 60.940M (±24.7%) i/s (16.41 ns/i) - 245.286M in 5.009566s | |
| Hash#fetch, string 59.145M (±24.3%) i/s (16.91 ns/i) - 241.262M in 5.010161s | |
| Comparison: | |
| Hash#fetch, symbol: 125485807.1 i/s | |
| Hash#[], symbol: 95950915.2 i/s - same-ish: difference falls within error | |
| Hash#[], string: 60940209.3 i/s - 2.06x slower | |
| Hash#fetch, string: 59145125.8 i/s - 2.12x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#[], symbol 3.959M i/100ms | |
| Hash#fetch, symbol 3.778M i/100ms | |
| Hash#[], string 3.903M i/100ms | |
| Hash#fetch, string 1.483M i/100ms | |
| Calculating ------------------------------------- | |
| Hash#[], symbol 53.639M (± 2.9%) i/s (18.64 ns/i) - 269.233M in 5.023543s | |
| Hash#fetch, symbol 46.295M (± 4.5%) i/s (21.60 ns/i) - 234.206M in 5.072606s | |
| Hash#[], string 52.066M (± 2.3%) i/s (19.21 ns/i) - 261.532M in 5.025838s | |
| Hash#fetch, string 22.836M (± 3.4%) i/s (43.79 ns/i) - 114.192M in 5.007284s | |
| Comparison: | |
| Hash#[], symbol: 53638556.7 i/s | |
| Hash#[], string: 52065555.3 i/s - same-ish: difference falls within error | |
| Hash#fetch, symbol: 46294506.3 i/s - 1.16x slower | |
| Hash#fetch, string: 22836412.8 i/s - 2.35x slower | |
| 35/68: code/hash/dig-vs-[]-vs-fetch.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#dig 1.015M i/100ms | |
| Hash#[] 1.062M i/100ms | |
| Hash#[] || 1.088M i/100ms | |
| Hash#[] && 782.318k i/100ms | |
| Hash#fetch 1.144M i/100ms | |
| Hash#fetch fallback 1.094M i/100ms | |
| Calculating ------------------------------------- | |
| Hash#dig 28.474M (±29.5%) i/s (35.12 ns/i) - 114.702M in 5.010061s | |
| Hash#[] 45.391M (±25.3%) i/s (22.03 ns/i) - 184.774M in 5.010381s | |
| Hash#[] || 44.678M (±24.6%) i/s (22.38 ns/i) - 184.992M in 5.005759s | |
| Hash#[] && 15.811M (±21.7%) i/s (63.25 ns/i) - 73.538M in 5.035852s | |
| Hash#fetch 59.300M (±23.6%) i/s (16.86 ns/i) - 236.822M in 5.016740s | |
| Hash#fetch fallback 42.136M (±26.0%) i/s (23.73 ns/i) - 172.796M in 5.006574s | |
| Comparison: | |
| Hash#fetch: 59299878.4 i/s | |
| Hash#[]: 45390784.3 i/s - same-ish: difference falls within error | |
| Hash#[] ||: 44678464.2 i/s - same-ish: difference falls within error | |
| Hash#fetch fallback: 42136072.5 i/s - same-ish: difference falls within error | |
| Hash#dig: 28474403.7 i/s - 2.08x slower | |
| Hash#[] &&: 15811470.0 i/s - 3.75x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#dig 2.123M i/100ms | |
| Hash#[] 2.163M i/100ms | |
| Hash#[] || 2.352M i/100ms | |
| Hash#[] && 989.852k i/100ms | |
| Hash#fetch 1.745M i/100ms | |
| Hash#fetch fallback 920.699k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#dig 24.505M (± 2.7%) i/s (40.81 ns/i) - 123.111M in 5.027883s | |
| Hash#[] 27.180M (± 3.5%) i/s (36.79 ns/i) - 136.264M in 5.019952s | |
| Hash#[] || 27.745M (± 3.7%) i/s (36.04 ns/i) - 138.756M in 5.008714s | |
| Hash#[] && 11.347M (± 7.8%) i/s (88.13 ns/i) - 56.422M in 5.007859s | |
| Hash#fetch 20.627M (± 1.9%) i/s (48.48 ns/i) - 104.675M in 5.076490s | |
| Hash#fetch fallback 10.304M (± 1.5%) i/s (97.05 ns/i) - 51.559M in 5.004925s | |
| Comparison: | |
| Hash#[] ||: 27745036.2 i/s | |
| Hash#[]: 27180257.8 i/s - same-ish: difference falls within error | |
| Hash#dig: 24505132.5 i/s - 1.13x slower | |
| Hash#fetch: 20627139.6 i/s - 1.35x slower | |
| Hash#[] &&: 11346542.9 i/s - 2.45x slower | |
| Hash#fetch fallback: 10304140.0 i/s - 2.69x slower | |
| 36/68: code/hash/fetch-vs-fetch-with-block.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#fetch + const 1.481M i/100ms | |
| Hash#fetch + block 1.299M i/100ms | |
| Hash#fetch + arg 1.346M i/100ms | |
| Calculating ------------------------------------- | |
| Hash#fetch + const 115.444M (±23.2%) i/s (8.66 ns/i) - 448.743M in 5.005971s | |
| Hash#fetch + block 43.754M (±25.7%) i/s (22.85 ns/i) - 181.850M in 5.014961s | |
| Hash#fetch + arg 123.058M (±17.6%) i/s (8.13 ns/i) - 507.459M in 4.999065s | |
| Comparison: | |
| Hash#fetch + arg: 123058169.9 i/s | |
| Hash#fetch + const: 115444148.2 i/s - same-ish: difference falls within error | |
| Hash#fetch + block: 43754325.2 i/s - 2.81x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#fetch + const 4.075M i/100ms | |
| Hash#fetch + block 3.977M i/100ms | |
| Hash#fetch + arg 2.456M i/100ms | |
| Calculating ------------------------------------- | |
| Hash#fetch + const 53.525M (± 2.5%) i/s (18.68 ns/i) - 268.966M in 5.028219s | |
| Hash#fetch + block 54.225M (± 1.4%) i/s (18.44 ns/i) - 274.424M in 5.061742s | |
| Hash#fetch + arg 29.546M (± 0.3%) i/s (33.85 ns/i) - 149.833M in 5.071209s | |
| Comparison: | |
| Hash#fetch + block: 54225485.2 i/s | |
| Hash#fetch + const: 53524902.1 i/s - same-ish: difference falls within error | |
| Hash#fetch + arg: 29545926.9 i/s - 1.84x slower | |
| 37/68: code/hash/hash-key-sort_by-vs-sort.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| sort_by + to_h 118.588k i/100ms | |
| sort + to_h 59.461k i/100ms | |
| Calculating ------------------------------------- | |
| sort_by + to_h 1.177M (± 5.0%) i/s (849.77 ns/i) - 5.929M in 5.053157s | |
| sort + to_h 610.449k (± 2.4%) i/s (1.64 μs/i) - 3.092M in 5.068152s | |
| Comparison: | |
| sort_by + to_h: 1176788.9 i/s | |
| sort + to_h: 610449.0 i/s - 1.93x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| sort_by + to_h 70.061k i/100ms | |
| sort + to_h 27.801k i/100ms | |
| Calculating ------------------------------------- | |
| sort_by + to_h 715.829k (± 5.2%) i/s (1.40 μs/i) - 3.573M in 5.010343s | |
| sort + to_h 259.180k (± 7.2%) i/s (3.86 μs/i) - 1.307M in 5.073709s | |
| Comparison: | |
| sort_by + to_h: 715829.0 i/s | |
| sort + to_h: 259180.5 i/s - 2.76x slower | |
| 38/68: code/hash/keys-each-vs-each_key.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#keys.each 518.287k i/100ms | |
| Hash#each_key 526.307k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#keys.each 6.084M (±11.3%) i/s (164.36 ns/i) - 30.061M in 5.005296s | |
| Hash#each_key 7.312M (±15.4%) i/s (136.75 ns/i) - 35.789M in 5.036763s | |
| Comparison: | |
| Hash#each_key: 7312430.2 i/s | |
| Hash#keys.each: 6084055.0 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#keys.each 456.532k i/100ms | |
| Hash#each_key 530.439k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#keys.each 4.822M (± 3.9%) i/s (207.36 ns/i) - 24.196M in 5.025770s | |
| Hash#each_key 5.749M (± 1.8%) i/s (173.93 ns/i) - 29.174M in 5.076002s | |
| Comparison: | |
| Hash#each_key: 5749316.2 i/s | |
| Hash#keys.each: 4822432.3 i/s - 1.19x slower | |
| 39/68: code/hash/keys-include-vs-key.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#keys.include? 977.000 i/100ms | |
| Hash#key? 1.448M i/100ms | |
| Calculating ------------------------------------- | |
| Hash#keys.include? 10.013k (± 6.3%) i/s (99.87 μs/i) - 50.804k in 5.098768s | |
| Hash#key? 92.634M (±20.9%) i/s (10.80 ns/i) - 373.521M in 5.007659s | |
| Comparison: | |
| Hash#key?: 92633801.8 i/s | |
| Hash#keys.include?: 10012.7 i/s - 9251.64x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#keys.include? 2.408k i/100ms | |
| Hash#key? 3.320M i/100ms | |
| Calculating ------------------------------------- | |
| Hash#keys.include? 22.691k (± 4.8%) i/s (44.07 μs/i) - 113.176k in 5.000087s | |
| Hash#key? 41.146M (± 1.4%) i/s (24.30 ns/i) - 205.821M in 5.003220s | |
| Comparison: | |
| Hash#key?: 41146259.0 i/s | |
| Hash#keys.include?: 22690.9 i/s - 1813.34x slower | |
| 40/68: code/hash/merge-bang-vs-[]=.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#merge! 21.816k i/100ms | |
| Hash#[]= 32.092k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#merge! 218.984k (± 1.9%) i/s (4.57 μs/i) - 1.113M in 5.082607s | |
| Hash#[]= 312.886k (± 1.1%) i/s (3.20 μs/i) - 1.573M in 5.026457s | |
| Comparison: | |
| Hash#[]=: 312886.0 i/s | |
| Hash#merge!: 218984.2 i/s - 1.43x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#merge! 9.279k i/100ms | |
| Hash#[]= 24.118k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#merge! 92.506k (± 1.2%) i/s (10.81 μs/i) - 463.950k in 5.016078s | |
| Hash#[]= 240.737k (± 1.7%) i/s (4.15 μs/i) - 1.206M in 5.010665s | |
| Comparison: | |
| Hash#[]=: 240737.5 i/s | |
| Hash#merge!: 92505.8 i/s - 2.60x slower | |
| 41/68: code/hash/merge-bang-vs-merge-vs-dup-merge-bang.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| {}#merge!(Hash) do end | |
| 16.650k i/100ms | |
| Hash#merge({}) 14.630k i/100ms | |
| Hash#dup#merge!({}) 14.174k i/100ms | |
| Calculating ------------------------------------- | |
| {}#merge!(Hash) do end | |
| 173.695k (± 4.6%) i/s (5.76 μs/i) - 865.800k in 4.998455s | |
| Hash#merge({}) 143.168k (± 4.2%) i/s (6.98 μs/i) - 716.870k in 5.016761s | |
| Hash#dup#merge!({}) 138.003k (± 1.9%) i/s (7.25 μs/i) - 694.526k in 5.034612s | |
| Comparison: | |
| {}#merge!(Hash) do end: 173695.3 i/s | |
| Hash#merge({}): 143167.7 i/s - 1.21x slower | |
| Hash#dup#merge!({}): 138003.4 i/s - 1.26x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| {}#merge!(Hash) do end | |
| 12.524k i/100ms | |
| Hash#merge({}) 9.851k i/100ms | |
| Hash#dup#merge!({}) 7.681k i/100ms | |
| Calculating ------------------------------------- | |
| {}#merge!(Hash) do end | |
| 126.165k (± 2.0%) i/s (7.93 μs/i) - 638.724k in 5.064675s | |
| Hash#merge({}) 101.303k (± 1.5%) i/s (9.87 μs/i) - 512.252k in 5.057821s | |
| Hash#dup#merge!({}) 77.029k (± 1.5%) i/s (12.98 μs/i) - 391.731k in 5.086599s | |
| Comparison: | |
| {}#merge!(Hash) do end: 126165.0 i/s | |
| Hash#merge({}): 101303.3 i/s - 1.25x slower | |
| Hash#dup#merge!({}): 77029.1 i/s - 1.64x slower | |
| 42/68: code/hash/merge-vs-double-splat-operator.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#**other 804.465k i/100ms | |
| Hash#merge 804.656k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#**other 12.992M (±20.3%) i/s (76.97 ns/i) - 61.944M in 5.053015s | |
| Hash#merge 13.253M (±19.1%) i/s (75.45 ns/i) - 63.568M in 5.054123s | |
| Comparison: | |
| Hash#merge: 13253127.6 i/s | |
| Hash#**other: 12991773.5 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#**other 961.141k i/100ms | |
| Hash#merge 843.656k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#**other 10.902M (± 2.1%) i/s (91.73 ns/i) - 54.785M in 5.027533s | |
| Hash#merge 9.396M (± 0.4%) i/s (106.43 ns/i) - 47.245M in 5.028312s | |
| Comparison: | |
| Hash#**other: 10901898.0 i/s | |
| Hash#merge: 9395860.3 i/s - 1.16x slower | |
| 43/68: code/hash/merge-vs-merge-bang.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#merge 3.144k i/100ms | |
| Hash#merge! 18.049k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#merge 32.256k (± 4.9%) i/s (31.00 μs/i) - 163.488k in 5.083525s | |
| Hash#merge! 168.941k (± 2.3%) i/s (5.92 μs/i) - 848.303k in 5.024062s | |
| Comparison: | |
| Hash#merge!: 168941.1 i/s | |
| Hash#merge: 32256.4 i/s - 5.24x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#merge 4.465k i/100ms | |
| Hash#merge! 9.463k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#merge 44.030k (± 3.1%) i/s (22.71 μs/i) - 223.250k in 5.075662s | |
| Hash#merge! 90.819k (± 0.5%) i/s (11.01 μs/i) - 454.224k in 5.001541s | |
| Comparison: | |
| Hash#merge!: 90819.4 i/s | |
| Hash#merge: 44029.8 i/s - 2.06x slower | |
| 44/68: code/hash/slice-native-vs-before-native.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#native-slice 922.174k i/100ms | |
| Array#each 639.982k i/100ms | |
| Array#each_w/_object 548.745k i/100ms | |
| Hash#select-include 238.194k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#native-slice 18.667M (±23.8%) i/s (53.57 ns/i) - 85.762M in 5.034823s | |
| Array#each 9.441M (±17.7%) i/s (105.92 ns/i) - 45.439M in 5.008655s | |
| Array#each_w/_object 6.691M (±26.8%) i/s (149.45 ns/i) - 30.730M in 5.045174s | |
| Hash#select-include 2.614M (± 7.6%) i/s (382.51 ns/i) - 13.101M in 5.041771s | |
| Comparison: | |
| Hash#native-slice : 18666874.9 i/s | |
| Array#each : 9441250.6 i/s - 1.98x slower | |
| Array#each_w/_object: 6691080.3 i/s - 2.79x slower | |
| Hash#select-include : 2614302.7 i/s - 7.14x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#native-slice 1.006M i/100ms | |
| Array#each 814.437k i/100ms | |
| Array#each_w/_object 428.925k i/100ms | |
| Hash#select-include 145.887k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#native-slice 11.232M (± 0.2%) i/s (89.03 ns/i) - 56.354M in 5.017256s | |
| Array#each 8.753M (± 2.0%) i/s (114.25 ns/i) - 43.980M in 5.026846s | |
| Array#each_w/_object 4.812M (± 1.2%) i/s (207.82 ns/i) - 24.449M in 5.081697s | |
| Hash#select-include 1.500M (± 2.8%) i/s (666.49 ns/i) - 7.586M in 5.060365s | |
| Comparison: | |
| Hash#native-slice : 11231999.4 i/s | |
| Array#each : 8752542.0 i/s - 1.28x slower | |
| Array#each_w/_object: 4811783.4 i/s - 2.33x slower | |
| Hash#select-include : 1500408.8 i/s - 7.49x slower | |
| 45/68: code/hash/update-vs-[]=.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#[]= 37.290k i/100ms | |
| Hash#update 20.627k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#[]= 379.533k (± 2.3%) i/s (2.63 μs/i) - 1.902M in 5.013688s | |
| Hash#update 242.816k (± 1.3%) i/s (4.12 μs/i) - 1.217M in 5.012882s | |
| Comparison: | |
| Hash#[]=: 379533.4 i/s | |
| Hash#update: 242816.4 i/s - 1.56x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#[]= 23.571k i/100ms | |
| Hash#update 9.492k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#[]= 231.059k (± 1.7%) i/s (4.33 μs/i) - 1.155M in 5.000061s | |
| Hash#update 96.019k (± 0.5%) i/s (10.41 μs/i) - 484.092k in 5.041719s | |
| Comparison: | |
| Hash#[]=: 231058.5 i/s | |
| Hash#update: 96019.4 i/s - 2.41x slower | |
| 46/68: code/hash/values-include-vs-value.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Hash#values.include? 1.122k i/100ms | |
| Hash#value? 1.635k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#values.include? 11.047k (± 4.8%) i/s (90.52 μs/i) - 56.100k in 5.089963s | |
| Hash#value? 15.870k (± 7.2%) i/s (63.01 μs/i) - 80.115k in 5.081033s | |
| Comparison: | |
| Hash#value?: 15870.0 i/s | |
| Hash#values.include?: 11046.9 i/s - 1.44x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Hash#values.include? 3.071k i/100ms | |
| Hash#value? 3.403k i/100ms | |
| Calculating ------------------------------------- | |
| Hash#values.include? 33.793k (± 2.7%) i/s (29.59 μs/i) - 168.905k in 5.002067s | |
| Hash#value? 30.397k (± 1.6%) i/s (32.90 μs/i) - 153.135k in 5.039025s | |
| Comparison: | |
| Hash#values.include?: 33792.6 i/s | |
| Hash#value?: 30397.4 i/s - 1.11x slower | |
| 47/68: code/method/call-vs-send-vs-method_missing.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| call 1.191M i/100ms | |
| send 1.334M i/100ms | |
| method_missing 959.573k i/100ms | |
| Calculating ------------------------------------- | |
| call 58.369M (±24.7%) i/s (17.13 ns/i) - 227.397M in 5.003538s | |
| send 38.679M (±25.7%) i/s (25.85 ns/i) - 165.377M in 5.020314s | |
| method_missing 37.097M (±27.8%) i/s (26.96 ns/i) - 145.855M in 5.019633s | |
| Comparison: | |
| call: 58369029.5 i/s | |
| send: 38678628.4 i/s - same-ish: difference falls within error | |
| method_missing: 37096792.1 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| call 1.956M i/100ms | |
| send 1.879M i/100ms | |
| method_missing 927.943k i/100ms | |
| Calculating ------------------------------------- | |
| call 22.605M (± 2.8%) i/s (44.24 ns/i) - 113.461M in 5.023984s | |
| send 21.882M (± 2.8%) i/s (45.70 ns/i) - 110.854M in 5.070702s | |
| method_missing 10.696M (± 3.1%) i/s (93.49 ns/i) - 53.821M in 5.037400s | |
| Comparison: | |
| call: 22605343.9 i/s | |
| send: 21882276.8 i/s - same-ish: difference falls within error | |
| method_missing: 10695843.2 i/s - 2.11x slower | |
| 48/68: code/proc-and-block/block-vs-to_proc.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Block 52.446k i/100ms | |
| Symbol#to_proc 49.669k i/100ms | |
| Calculating ------------------------------------- | |
| Block 533.117k (± 2.0%) i/s (1.88 μs/i) - 2.675M in 5.019378s | |
| Symbol#to_proc 498.059k (± 3.8%) i/s (2.01 μs/i) - 2.533M in 5.094498s | |
| Comparison: | |
| Block: 533116.7 i/s | |
| Symbol#to_proc: 498059.4 i/s - 1.07x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Block 23.037k i/100ms | |
| Symbol#to_proc 21.596k i/100ms | |
| Calculating ------------------------------------- | |
| Block 230.467k (± 2.7%) i/s (4.34 μs/i) - 1.152M in 5.002422s | |
| Symbol#to_proc 215.952k (± 1.8%) i/s (4.63 μs/i) - 1.080M in 5.001808s | |
| Comparison: | |
| Block: 230466.6 i/s | |
| Symbol#to_proc: 215952.0 i/s - 1.07x slower | |
| 49/68: code/proc-and-block/proc-call-vs-yield.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| block.call 1.098M i/100ms | |
| block + yield 1.334M i/100ms | |
| unused block 1.364M i/100ms | |
| yield 1.307M i/100ms | |
| Calculating ------------------------------------- | |
| block.call 24.854M (±26.4%) i/s (40.24 ns/i) - 108.728M in 4.998733s | |
| block + yield 35.527M (±30.2%) i/s (28.15 ns/i) - 150.717M in 5.036095s | |
| unused block 31.017M (±23.8%) i/s (32.24 ns/i) - 139.172M in 5.025825s | |
| yield 28.714M (±23.4%) i/s (34.83 ns/i) - 129.437M in 5.010193s | |
| Comparison: | |
| block + yield: 35526968.8 i/s | |
| unused block: 31017374.6 i/s - same-ish: difference falls within error | |
| yield: 28714014.6 i/s - same-ish: difference falls within error | |
| block.call: 24853634.6 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| block.call 2.598M i/100ms | |
| block + yield 4.186M i/100ms | |
| unused block 5.357M i/100ms | |
| yield 3.885M i/100ms | |
| Calculating ------------------------------------- | |
| block.call 33.148M (± 2.0%) i/s (30.17 ns/i) - 166.288M in 5.018546s | |
| block + yield 48.791M (± 1.4%) i/s (20.50 ns/i) - 246.969M in 5.062795s | |
| unused block 80.739M (± 3.9%) i/s (12.39 ns/i) - 407.167M in 5.052323s | |
| yield 48.451M (± 2.7%) i/s (20.64 ns/i) - 244.739M in 5.055857s | |
| Comparison: | |
| unused block: 80739236.8 i/s | |
| block + yield: 48790610.1 i/s - 1.65x slower | |
| yield: 48450746.9 i/s - 1.67x slower | |
| block.call: 33148064.0 i/s - 2.44x slower | |
| 50/68: code/range/cover-vs-include.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| range#cover? 1.418M i/100ms | |
| range#include? 61.496k i/100ms | |
| range#member? 64.164k i/100ms | |
| plain compare 1.639M i/100ms | |
| value.between? 1.620M i/100ms | |
| Calculating ------------------------------------- | |
| range#cover? 50.911M (±24.5%) i/s (19.64 ns/i) - 215.556M in 5.015297s | |
| range#include? 605.016k (± 2.9%) i/s (1.65 μs/i) - 3.075M in 5.086426s | |
| range#member? 602.379k (± 4.5%) i/s (1.66 μs/i) - 3.016M in 5.017895s | |
| plain compare 74.960M (±22.9%) i/s (13.34 ns/i) - 309.770M in 5.018580s | |
| value.between? 74.342M (±22.5%) i/s (13.45 ns/i) - 307.842M in 5.008928s | |
| Comparison: | |
| plain compare: 74960144.1 i/s | |
| value.between?: 74341664.2 i/s - same-ish: difference falls within error | |
| range#cover?: 50910633.8 i/s - same-ish: difference falls within error | |
| range#include?: 605016.0 i/s - 123.90x slower | |
| range#member?: 602378.7 i/s - 124.44x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| range#cover? 824.819k i/100ms | |
| range#include? 33.833k i/100ms | |
| range#member? 33.853k i/100ms | |
| plain compare 1.605M i/100ms | |
| value.between? 1.656M i/100ms | |
| Calculating ------------------------------------- | |
| range#cover? 8.789M (± 1.7%) i/s (113.78 ns/i) - 44.540M in 5.069296s | |
| range#include? 339.931k (± 2.7%) i/s (2.94 μs/i) - 1.725M in 5.080363s | |
| range#member? 333.736k (± 3.4%) i/s (3.00 μs/i) - 1.693M in 5.078558s | |
| plain compare 18.019M (± 3.2%) i/s (55.50 ns/i) - 91.495M in 5.084342s | |
| value.between? 18.599M (± 2.2%) i/s (53.77 ns/i) - 94.386M in 5.077341s | |
| Comparison: | |
| value.between?: 18599130.0 i/s | |
| plain compare: 18019444.0 i/s - same-ish: difference falls within error | |
| range#cover?: 8788943.0 i/s - 2.12x slower | |
| range#include?: 339930.8 i/s - 54.71x slower | |
| range#member?: 333736.1 i/s - 55.73x slower | |
| 51/68: code/string/===-vs-=~-vs-match.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Regexp#match? 1.260M i/100ms | |
| String#match? 1.253M i/100ms | |
| String#=~ 1.240M i/100ms | |
| Regexp#=== 1.207M i/100ms | |
| Regexp#match 1.233M i/100ms | |
| String#match 1.159M i/100ms | |
| Calculating ------------------------------------- | |
| Regexp#match? 39.044M (±26.5%) i/s (25.61 ns/i) - 163.777M in 5.018182s | |
| String#match? 39.699M (±24.7%) i/s (25.19 ns/i) - 171.712M in 5.020727s | |
| String#=~ 34.446M (±26.3%) i/s (29.03 ns/i) - 147.605M in 5.023410s | |
| Regexp#=== 35.240M (±25.3%) i/s (28.38 ns/i) - 152.133M in 5.018602s | |
| Regexp#match 34.900M (±25.7%) i/s (28.65 ns/i) - 150.471M in 5.028081s | |
| String#match 30.632M (±25.8%) i/s (32.65 ns/i) - 133.283M in 5.016226s | |
| Comparison: | |
| String#match?: 39699377.3 i/s | |
| Regexp#match?: 39043826.2 i/s - same-ish: difference falls within error | |
| Regexp#===: 35240227.2 i/s - same-ish: difference falls within error | |
| Regexp#match: 34899501.3 i/s - same-ish: difference falls within error | |
| String#=~: 34445982.8 i/s - same-ish: difference falls within error | |
| String#match: 30632409.3 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Regexp#match? 2.582M i/100ms | |
| String#match? 2.639M i/100ms | |
| String#=~ 1.324M i/100ms | |
| Regexp#=== 1.328M i/100ms | |
| Regexp#match 1.260M i/100ms | |
| String#match 1.075M i/100ms | |
| Calculating ------------------------------------- | |
| Regexp#match? 31.776M (± 0.5%) i/s (31.47 ns/i) - 160.058M in 5.037191s | |
| String#match? 31.636M (± 0.6%) i/s (31.61 ns/i) - 158.324M in 5.004687s | |
| String#=~ 14.964M (± 0.9%) i/s (66.82 ns/i) - 75.477M in 5.044181s | |
| Regexp#=== 14.966M (± 1.4%) i/s (66.82 ns/i) - 75.710M in 5.059963s | |
| Regexp#match 14.024M (± 1.5%) i/s (71.31 ns/i) - 70.550M in 5.031872s | |
| String#match 12.187M (± 9.1%) i/s (82.05 ns/i) - 60.198M in 5.020934s | |
| Comparison: | |
| Regexp#match?: 31776182.6 i/s | |
| String#match?: 31636217.2 i/s - same-ish: difference falls within error | |
| Regexp#===: 14965607.2 i/s - 2.12x slower | |
| String#=~: 14964472.6 i/s - 2.12x slower | |
| Regexp#match: 14024136.6 i/s - 2.27x slower | |
| String#match: 12187261.0 i/s - 2.61x slower | |
| 52/68: code/string/casecmp-vs-downcase-==.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#casecmp? 1.054M i/100ms | |
| String#downcase + == 1.158M i/100ms | |
| String#casecmp 1.446M i/100ms | |
| Calculating ------------------------------------- | |
| String#casecmp? 25.401M (±27.0%) i/s (39.37 ns/i) - 110.643M in 5.026351s | |
| String#downcase + == 40.702M (±24.4%) i/s (24.57 ns/i) - 173.655M in 5.011940s | |
| String#casecmp 73.944M (±22.9%) i/s (13.52 ns/i) - 299.336M in 5.005590s | |
| Comparison: | |
| String#casecmp: 73943952.9 i/s | |
| String#downcase + ==: 40702246.1 i/s - 1.82x slower | |
| String#casecmp?: 25401311.4 i/s - 2.91x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#casecmp? 1.142M i/100ms | |
| String#downcase + == 1.600M i/100ms | |
| String#casecmp 2.169M i/100ms | |
| Calculating ------------------------------------- | |
| String#casecmp? 12.298M (± 1.8%) i/s (81.31 ns/i) - 61.667M in 5.016034s | |
| String#downcase + == 17.728M (± 0.1%) i/s (56.41 ns/i) - 89.604M in 5.054486s | |
| String#casecmp 24.461M (± 0.7%) i/s (40.88 ns/i) - 123.628M in 5.054435s | |
| Comparison: | |
| String#casecmp: 24460572.7 i/s | |
| String#downcase + ==: 17727591.0 i/s - 1.38x slower | |
| String#casecmp?: 12298290.3 i/s - 1.99x slower | |
| 53/68: code/string/concatenation.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#+ 1.364M i/100ms | |
| String#concat 1.246M i/100ms | |
| String#append 1.228M i/100ms | |
| "foo" "bar" 1.331M i/100ms | |
| "#{'foo'}#{'bar'}" 1.329M i/100ms | |
| Calculating ------------------------------------- | |
| String#+ 42.633M (±24.6%) i/s (23.46 ns/i) - 184.189M in 5.028801s | |
| String#concat 30.502M (±25.0%) i/s (32.79 ns/i) - 134.560M in 5.029932s | |
| String#append 30.810M (±24.5%) i/s (32.46 ns/i) - 136.269M in 5.030499s | |
| "foo" "bar" 98.978M (±21.8%) i/s (10.10 ns/i) - 371.303M in 5.003803s | |
| "#{'foo'}#{'bar'}" 98.093M (±21.8%) i/s (10.19 ns/i) - 366.859M in 5.005345s | |
| Comparison: | |
| "foo" "bar": 98978398.6 i/s | |
| "#{'foo'}#{'bar'}": 98093424.9 i/s - same-ish: difference falls within error | |
| String#+: 42633280.8 i/s - 2.32x slower | |
| String#append: 30809914.0 i/s - 3.21x slower | |
| String#concat: 30501705.3 i/s - 3.25x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#+ 1.330M i/100ms | |
| String#concat 1.399M i/100ms | |
| String#append 1.630M i/100ms | |
| "foo" "bar" 2.752M i/100ms | |
| "#{'foo'}#{'bar'}" 2.810M i/100ms | |
| Calculating ------------------------------------- | |
| String#+ 12.495M (±15.2%) i/s (80.03 ns/i) - 61.160M in 5.017669s | |
| String#concat 12.970M (±11.0%) i/s (77.10 ns/i) - 64.367M in 5.027925s | |
| String#append 15.555M (± 9.9%) i/s (64.29 ns/i) - 78.237M in 5.084051s | |
| "foo" "bar" 28.091M (±14.8%) i/s (35.60 ns/i) - 137.575M in 5.046289s | |
| "#{'foo'}#{'bar'}" 32.057M (± 8.7%) i/s (31.19 ns/i) - 160.159M in 5.037040s | |
| Comparison: | |
| "#{'foo'}#{'bar'}": 32056591.2 i/s | |
| "foo" "bar": 28091396.7 i/s - same-ish: difference falls within error | |
| String#append: 15555499.9 i/s - 2.06x slower | |
| String#concat: 12970109.8 i/s - 2.47x slower | |
| String#+: 12495117.2 i/s - 2.57x slower | |
| 54/68: code/string/concatenation_randomized.rb | |
| 55/68: code/string/dup-vs-unary-plus.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#+@ 1.268M i/100ms | |
| String#dup 1.158M i/100ms | |
| Calculating ------------------------------------- | |
| String#+@ 98.136M (±23.1%) i/s (10.19 ns/i) - 357.640M in 5.005987s | |
| String#dup 103.511M (±20.4%) i/s (9.66 ns/i) - 391.272M in 5.002357s | |
| Comparison: | |
| String#dup: 103511251.1 i/s | |
| String#+@: 98136253.6 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#+@ 2.873M i/100ms | |
| String#dup 2.803M i/100ms | |
| Calculating ------------------------------------- | |
| String#+@ 34.250M (± 0.4%) i/s (29.20 ns/i) - 172.373M in 5.032821s | |
| String#dup 35.182M (± 6.1%) i/s (28.42 ns/i) - 176.588M in 5.043778s | |
| Comparison: | |
| String#dup: 35182384.6 i/s | |
| String#+@: 34250295.3 i/s - same-ish: difference falls within error | |
| 56/68: code/string/end-string-checking-match-vs-end_with.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#=~ 429.164k i/100ms | |
| String#match? 494.320k i/100ms | |
| String#end_with? 1.286M i/100ms | |
| Calculating ------------------------------------- | |
| String#=~ 5.237M (±12.5%) i/s (190.95 ns/i) - 25.750M in 5.005386s | |
| String#match? 6.389M (±13.5%) i/s (156.53 ns/i) - 31.636M in 5.056608s | |
| String#end_with? 50.583M (±23.5%) i/s (19.77 ns/i) - 214.695M in 5.016128s | |
| Comparison: | |
| String#end_with?: 50583427.5 i/s | |
| String#match?: 6388668.6 i/s - 7.92x slower | |
| String#=~: 5237087.8 i/s - 9.66x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#=~ 453.172k i/100ms | |
| String#match? 749.370k i/100ms | |
| String#end_with? 1.353M i/100ms | |
| Calculating ------------------------------------- | |
| String#=~ 4.960M (± 0.9%) i/s (201.63 ns/i) - 24.924M in 5.025926s | |
| String#match? 8.953M (± 2.9%) i/s (111.69 ns/i) - 44.962M in 5.026309s | |
| String#end_with? 14.475M (± 0.4%) i/s (69.09 ns/i) - 73.082M in 5.049063s | |
| Comparison: | |
| String#end_with?: 14474614.0 i/s | |
| String#match?: 8953087.7 i/s - 1.62x slower | |
| String#=~: 4959565.0 i/s - 2.92x slower | |
| 57/68: code/string/gsub-vs-sub.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#gsub 406.068k i/100ms | |
| String#sub 801.681k i/100ms | |
| String#dup["string"]= | |
| 897.634k i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub 4.950M (±11.7%) i/s (202.03 ns/i) - 24.364M in 4.998617s | |
| String#sub 13.181M (±19.4%) i/s (75.87 ns/i) - 62.531M in 5.005316s | |
| String#dup["string"]= | |
| 15.641M (±23.4%) i/s (63.94 ns/i) - 72.708M in 5.031382s | |
| Comparison: | |
| String#dup["string"]=: 15640526.1 i/s | |
| String#sub: 13181268.0 i/s - same-ish: difference falls within error | |
| String#gsub: 4949678.5 i/s - 3.16x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#gsub 222.731k i/100ms | |
| String#sub 462.726k i/100ms | |
| String#dup["string"]= | |
| 888.277k i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub 2.284M (± 1.4%) i/s (437.92 ns/i) - 11.582M in 5.073024s | |
| String#sub 4.716M (± 3.4%) i/s (212.05 ns/i) - 23.599M in 5.010569s | |
| String#dup["string"]= | |
| 9.600M (± 2.1%) i/s (104.16 ns/i) - 48.855M in 5.091484s | |
| Comparison: | |
| String#dup["string"]=: 9600239.9 i/s | |
| String#sub: 4715779.3 i/s - 2.04x slower | |
| String#gsub: 2283537.2 i/s - 4.20x slower | |
| 58/68: code/string/gsub-vs-tr-vs-delete.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#gsub 409.939k i/100ms | |
| String#tr 577.750k i/100ms | |
| String#delete 574.898k i/100ms | |
| String#delete const 595.716k i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub 5.015M (±13.1%) i/s (199.38 ns/i) - 24.596M in 5.004748s | |
| String#tr 7.715M (±15.4%) i/s (129.61 ns/i) - 37.554M in 5.004718s | |
| String#delete 7.965M (±17.0%) i/s (125.55 ns/i) - 38.518M in 5.012507s | |
| String#delete const 8.212M (±16.9%) i/s (121.77 ns/i) - 39.913M in 5.030507s | |
| Comparison: | |
| String#delete const: 8212196.5 i/s | |
| String#delete: 7964693.3 i/s - same-ish: difference falls within error | |
| String#tr: 7715285.5 i/s - same-ish: difference falls within error | |
| String#gsub: 5015426.9 i/s - 1.64x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#gsub 293.222k i/100ms | |
| String#tr 1.003M i/100ms | |
| String#delete 1.272M i/100ms | |
| String#delete const 1.528M i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub 3.077M (± 2.3%) i/s (324.96 ns/i) - 15.541M in 5.052755s | |
| String#tr 10.668M (± 4.2%) i/s (93.74 ns/i) - 54.183M in 5.091324s | |
| String#delete 13.936M (± 0.3%) i/s (71.75 ns/i) - 69.965M in 5.020394s | |
| String#delete const 17.184M (± 0.4%) i/s (58.19 ns/i) - 87.085M in 5.067968s | |
| Comparison: | |
| String#delete const: 17183719.8 i/s | |
| String#delete: 13936362.2 i/s - 1.23x slower | |
| String#tr: 10668103.0 i/s - 1.61x slower | |
| String#gsub: 3077283.7 i/s - 5.58x slower | |
| 59/68: code/string/gsub-vs-tr.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#gsub 435.875k i/100ms | |
| String#tr 798.391k i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub 5.299M (±11.6%) i/s (188.70 ns/i) - 26.152M in 5.009185s | |
| String#tr 14.841M (±19.7%) i/s (67.38 ns/i) - 70.258M in 5.014123s | |
| Comparison: | |
| String#tr: 14841072.5 i/s | |
| String#gsub: 5299353.3 i/s - 2.80x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#gsub 290.050k i/100ms | |
| String#tr 941.767k i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub 3.065M (± 1.9%) i/s (326.25 ns/i) - 15.373M in 5.017401s | |
| String#tr 9.919M (± 2.0%) i/s (100.81 ns/i) - 49.914M in 5.034252s | |
| Comparison: | |
| String#tr: 9919314.4 i/s | |
| String#gsub: 3065088.1 i/s - 3.24x slower | |
| 60/68: code/string/mutable_vs_immutable_strings.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Without Freeze 1.666M i/100ms | |
| With Freeze 1.769M i/100ms | |
| Calculating ------------------------------------- | |
| Without Freeze 95.497M (±23.4%) i/s (10.47 ns/i) - 369.951M in 5.004643s | |
| With Freeze 146.272M (±22.2%) i/s (6.84 ns/i) - 530.676M in 4.999524s | |
| Comparison: | |
| With Freeze: 146271854.2 i/s | |
| Without Freeze: 95496649.2 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Without Freeze 2.709M i/100ms | |
| With Freeze 4.650M i/100ms | |
| Calculating ------------------------------------- | |
| Without Freeze 32.893M (± 0.4%) i/s (30.40 ns/i) - 165.254M in 5.024030s | |
| With Freeze 63.729M (± 2.4%) i/s (15.69 ns/i) - 320.847M in 5.037339s | |
| Comparison: | |
| With Freeze: 63728820.2 i/s | |
| Without Freeze: 32893244.5 i/s - 1.94x slower | |
| 61/68: code/string/remove-extra-spaces-or-other-chars.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#gsub/regex+/ 30.117k i/100ms | |
| String#squeeze 236.363k i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub/regex+/ 311.912k (± 4.6%) i/s (3.21 μs/i) - 1.566M in 5.034450s | |
| String#squeeze 2.585M (±10.3%) i/s (386.80 ns/i) - 12.764M in 5.002457s | |
| Comparison: | |
| String#squeeze: 2585338.7 i/s | |
| String#gsub/regex+/: 311911.7 i/s - 8.29x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#gsub/regex+/ 8.906k i/100ms | |
| String#squeeze 456.496k i/100ms | |
| Calculating ------------------------------------- | |
| String#gsub/regex+/ 89.189k (± 1.2%) i/s (11.21 μs/i) - 454.206k in 5.093379s | |
| String#squeeze 4.719M (± 0.6%) i/s (211.93 ns/i) - 23.738M in 5.030864s | |
| Comparison: | |
| String#squeeze: 4718597.0 i/s | |
| String#gsub/regex+/: 89188.8 i/s - 52.91x slower | |
| 62/68: code/string/start-string-checking-match-vs-start_with.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#=~ 998.592k i/100ms | |
| String#match? 1.134M i/100ms | |
| String#start_with? 1.583M i/100ms | |
| Calculating ------------------------------------- | |
| String#=~ 20.081M (±24.4%) i/s (49.80 ns/i) - 91.870M in 5.042714s | |
| String#match? 27.632M (±24.3%) i/s (36.19 ns/i) - 123.655M in 5.031757s | |
| String#start_with? 101.060M (±20.8%) i/s (9.90 ns/i) - 408.470M in 5.009016s | |
| Comparison: | |
| String#start_with?: 101059621.8 i/s | |
| String#match?: 27632218.2 i/s - 3.66x slower | |
| String#=~: 20080706.6 i/s - 5.03x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#=~ 707.586k i/100ms | |
| String#match? 1.918M i/100ms | |
| String#start_with? 2.092M i/100ms | |
| Calculating ------------------------------------- | |
| String#=~ 7.885M (± 3.9%) i/s (126.82 ns/i) - 39.625M in 5.034740s | |
| String#match? 22.636M (± 1.2%) i/s (44.18 ns/i) - 115.052M in 5.083496s | |
| String#start_with? 24.145M (± 2.7%) i/s (41.42 ns/i) - 121.356M in 5.030641s | |
| Comparison: | |
| String#start_with?: 24144780.0 i/s | |
| String#match?: 22635804.3 i/s - 1.07x slower | |
| String#=~: 7885068.2 i/s - 3.06x slower | |
| 63/68: code/string/start_with-vs-substring-==.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#start_with? 225.693k i/100ms | |
| String#[0, n] == 108.773k i/100ms | |
| String#[RANGE] == 143.829k i/100ms | |
| String#[0...n] == 108.104k i/100ms | |
| Calculating ------------------------------------- | |
| String#start_with? 44.910M (±20.5%) i/s (22.27 ns/i) - 124.808M in 4.998255s | |
| String#[0, n] == 6.410M (±35.5%) i/s (156.00 ns/i) - 17.077M in 5.008772s | |
| String#[RANGE] == 10.508M (±29.2%) i/s (95.17 ns/i) - 32.218M in 5.011158s | |
| String#[0...n] == 5.474M (±40.4%) i/s (182.69 ns/i) - 14.810M in 5.011960s | |
| Comparison: | |
| String#start_with?: 44909961.0 i/s | |
| String#[RANGE] ==: 10507960.1 i/s - 4.27x slower | |
| String#[0, n] ==: 6410108.5 i/s - 7.01x slower | |
| String#[0...n] ==: 5473634.7 i/s - 8.20x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#start_with? 412.828k i/100ms | |
| String#[0, n] == 178.223k i/100ms | |
| String#[RANGE] == 175.756k i/100ms | |
| String#[0...n] == 103.420k i/100ms | |
| Calculating ------------------------------------- | |
| String#start_with? 6.135M (± 4.2%) i/s (162.99 ns/i) - 30.962M in 5.058094s | |
| String#[0, n] == 2.503M (± 3.3%) i/s (399.55 ns/i) - 12.654M in 5.062817s | |
| String#[RANGE] == 2.373M (± 0.8%) i/s (421.35 ns/i) - 11.951M in 5.036016s | |
| String#[0...n] == 1.289M (± 2.8%) i/s (775.87 ns/i) - 6.515M in 5.060052s | |
| Comparison: | |
| String#start_with?: 6135332.4 i/s | |
| String#[0, n] ==: 2502795.5 i/s - 2.45x slower | |
| String#[RANGE] ==: 2373343.2 i/s - 2.59x slower | |
| String#[0...n] ==: 1288878.7 i/s - 4.76x slower | |
| 64/68: code/string/sub!-vs-gsub!-vs-[]=.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#['string']= 978.219k i/100ms | |
| String#sub!'string' 825.556k i/100ms | |
| String#gsub!'string' 409.814k i/100ms | |
| String#[/regexp/]= 706.908k i/100ms | |
| String#sub!/regexp/ 698.270k i/100ms | |
| String#gsub!/regexp/ 316.483k i/100ms | |
| Calculating ------------------------------------- | |
| String#['string']= 20.389M (±26.5%) i/s (49.04 ns/i) - 90.974M in 5.017455s | |
| String#sub!'string' 14.031M (±20.6%) i/s (71.27 ns/i) - 66.044M in 5.007605s | |
| String#gsub!'string' 4.918M (±11.0%) i/s (203.33 ns/i) - 24.589M in 5.068347s | |
| String#[/regexp/]= 10.716M (±18.7%) i/s (93.32 ns/i) - 51.604M in 5.047702s | |
| String#sub!/regexp/ 10.334M (±18.5%) i/s (96.77 ns/i) - 49.577M in 5.023231s | |
| String#gsub!/regexp/ 3.792M (± 9.9%) i/s (263.70 ns/i) - 18.989M in 5.062233s | |
| Comparison: | |
| String#['string']=: 20389444.7 i/s | |
| String#sub!'string': 14030755.2 i/s - same-ish: difference falls within error | |
| String#[/regexp/]=: 10716105.7 i/s - 1.90x slower | |
| String#sub!/regexp/: 10333695.1 i/s - 1.97x slower | |
| String#gsub!'string': 4918061.4 i/s - 4.15x slower | |
| String#gsub!/regexp/: 3792207.7 i/s - 5.38x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#['string']= 949.644k i/100ms | |
| String#sub!'string' 465.478k i/100ms | |
| String#gsub!'string' 211.016k i/100ms | |
| String#[/regexp/]= 501.462k i/100ms | |
| String#sub!/regexp/ 465.248k i/100ms | |
| String#gsub!/regexp/ 211.103k i/100ms | |
| Calculating ------------------------------------- | |
| String#['string']= 9.810M (± 2.9%) i/s (101.93 ns/i) - 49.381M in 5.038304s | |
| String#sub!'string' 5.011M (± 0.3%) i/s (199.56 ns/i) - 25.136M in 5.016158s | |
| String#gsub!'string' 2.192M (± 1.5%) i/s (456.22 ns/i) - 10.973M in 5.007300s | |
| String#[/regexp/]= 5.750M (± 0.9%) i/s (173.91 ns/i) - 29.085M in 5.058612s | |
| String#sub!/regexp/ 5.091M (± 0.5%) i/s (196.43 ns/i) - 25.589M in 5.026413s | |
| String#gsub!/regexp/ 2.196M (± 2.5%) i/s (455.45 ns/i) - 10.977M in 5.002916s | |
| Comparison: | |
| String#['string']=: 9810468.8 i/s | |
| String#[/regexp/]=: 5750041.9 i/s - 1.71x slower | |
| String#sub!/regexp/: 5090966.8 i/s - 1.93x slower | |
| String#sub!'string': 5011025.5 i/s - 1.96x slower | |
| String#gsub!/regexp/: 2195635.0 i/s - 4.47x slower | |
| String#gsub!'string': 2191922.3 i/s - 4.48x slower | |
| 65/68: code/string/sub-vs-chomp-vs-delete_suffix.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#sub 773.807k i/100ms | |
| String#chomp 1.280M i/100ms | |
| String#delete_suffix 1.330M i/100ms | |
| Calculating ------------------------------------- | |
| String#sub 12.479M (±30.5%) i/s (80.13 ns/i) - 53.393M in 5.040388s | |
| String#chomp 47.295M (±37.3%) i/s (21.14 ns/i) - 130.593M in 5.013434s | |
| String#delete_suffix 49.488M (±43.2%) i/s (20.21 ns/i) - 111.754M in 5.015847s | |
| Comparison: | |
| String#delete_suffix: 49487983.3 i/s | |
| String#chomp: 47295094.2 i/s - same-ish: difference falls within error | |
| String#sub: 12479290.8 i/s - 3.97x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#sub 468.456k i/100ms | |
| String#chomp 1.370M i/100ms | |
| String#delete_suffix 1.520M i/100ms | |
| Calculating ------------------------------------- | |
| String#sub 5.127M (± 1.1%) i/s (195.06 ns/i) - 25.765M in 5.026384s | |
| String#chomp 14.887M (± 0.7%) i/s (67.17 ns/i) - 75.331M in 5.060301s | |
| String#delete_suffix 16.626M (± 1.1%) i/s (60.15 ns/i) - 83.575M in 5.027488s | |
| Comparison: | |
| String#delete_suffix: 16625695.1 i/s | |
| String#chomp: 14887345.9 i/s - 1.12x slower | |
| String#sub: 5126570.7 i/s - 3.24x slower | |
| 66/68: code/string/sub-vs-delete_prefix.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#delete_prefix 1.433M i/100ms | |
| String#sub 823.170k i/100ms | |
| Calculating ------------------------------------- | |
| String#delete_prefix 58.463M (±25.7%) i/s (17.10 ns/i) - 236.372M in 5.003109s | |
| String#sub 13.310M (±19.5%) i/s (75.13 ns/i) - 63.384M in 5.024238s | |
| Comparison: | |
| String#delete_prefix: 58462809.9 i/s | |
| String#sub: 13309992.0 i/s - 4.39x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#delete_prefix 1.471M i/100ms | |
| String#sub 469.415k i/100ms | |
| Calculating ------------------------------------- | |
| String#delete_prefix 17.347M (± 1.6%) i/s (57.65 ns/i) - 86.813M in 5.005879s | |
| String#sub 5.090M (± 3.4%) i/s (196.48 ns/i) - 25.818M in 5.079685s | |
| Comparison: | |
| String#delete_prefix: 17346914.2 i/s | |
| String#sub: 5089702.1 i/s - 3.41x slower | |
| 67/68: code/string/unpack1-vs-unpack[0].rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| String#unpack1 774.573k i/100ms | |
| String#unpack[0] 1.056M i/100ms | |
| Calculating ------------------------------------- | |
| String#unpack1 32.345M (±21.5%) i/s (30.92 ns/i) - 145.620M in 5.007055s | |
| String#unpack[0] 19.996M (±49.1%) i/s (50.01 ns/i) - 57.032M in 5.011756s | |
| Comparison: | |
| String#unpack1: 32344960.3 i/s | |
| String#unpack[0]: 19995876.0 i/s - same-ish: difference falls within error | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| String#unpack1 1.615M i/100ms | |
| String#unpack[0] 1.199M i/100ms | |
| Calculating ------------------------------------- | |
| String#unpack1 17.866M (± 0.6%) i/s (55.97 ns/i) - 90.443M in 5.062389s | |
| String#unpack[0] 12.910M (± 0.7%) i/s (77.46 ns/i) - 64.764M in 5.016781s | |
| Comparison: | |
| String#unpack1: 17866341.0 i/s | |
| String#unpack[0]: 12910066.3 i/s - 1.38x slower | |
| 68/68: code/time/iso8601-vs-parse.rb | |
| jruby 10.0.3.0-SNAPSHOT (3.4.5) 2025-11-04 d74cb7a2e0 OpenJDK 64-Bit Server VM 21.0.8+9-LTS on 21.0.8+9-LTS +indy +jit [arm64-darwin] | |
| Warming up -------------------------------------- | |
| Time.iso8601 104.873k i/100ms | |
| Time.parse 12.453k i/100ms | |
| Calculating ------------------------------------- | |
| Time.iso8601 1.118M (± 6.6%) i/s (894.22 ns/i) - 5.558M in 4.999462s | |
| Time.parse 149.746k (± 1.5%) i/s (6.68 μs/i) - 759.633k in 5.074042s | |
| Comparison: | |
| Time.iso8601: 1118288.2 i/s | |
| Time.parse: 149746.1 i/s - 7.47x slower | |
| ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +YJIT +PRISM [arm64-darwin24] | |
| Warming up -------------------------------------- | |
| Time.iso8601 102.071k i/100ms | |
| Time.parse 27.151k i/100ms | |
| Calculating ------------------------------------- | |
| Time.iso8601 1.037M (± 0.5%) i/s (964.44 ns/i) - 5.206M in 5.020641s | |
| Time.parse 274.431k (± 0.7%) i/s (3.64 μs/i) - 1.385M in 5.045995s | |
| Comparison: | |
| Time.iso8601: 1036872.0 i/s | |
| Time.parse: 274431.3 i/s - 3.78x slower |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment