Skip to content

Latest commit

 

History

History

benchmark

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Benchmark report

$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

$ bundle exec ruby benchmark/parse_table.rb
Warming up --------------------------------------
SqlParser.parse_tables
                         3.315k i/100ms
RuboCop::Isucon::GDA::Client#table_names
                        31.000  i/100ms
Calculating -------------------------------------
SqlParser.parse_tables
                         31.672k (± 7.5%) i/s -    159.120k in   5.056991s
RuboCop::Isucon::GDA::Client#table_names
                        418.846  (± 9.8%) i/s -      2.077k in   5.023313s

Comparison:
SqlParser.parse_tables:    31671.6 i/s
RuboCop::Isucon::GDA::Client#table_names:      418.8 i/s - 75.62x  (± 0.00) slower
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

$ bundle exec ruby benchmark/memorize.rb
Warming up --------------------------------------
DefineMethodWithInstanceVariableMemorizer
                        79.346k i/100ms
DefineMethodWithHashMemorizer
                       158.601k i/100ms
  ClassEvalMemorizer   497.389k i/100ms
Calculating -------------------------------------
DefineMethodWithInstanceVariableMemorizer
                        701.502k (±13.8%) i/s -      3.491M in   5.087557s
DefineMethodWithHashMemorizer
                          1.549M (± 2.3%) i/s -      7.771M in   5.018555s
  ClassEvalMemorizer      4.866M (± 8.1%) i/s -     24.372M in   5.061882s

Comparison:
  ClassEvalMemorizer:  4865569.7 i/s
DefineMethodWithHashMemorizer:  1549386.5 i/s - 3.14x  (± 0.00) slower
DefineMethodWithInstanceVariableMemorizer:   701502.0 i/s - 6.94x  (± 0.00) slower
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

$ bundle exec ruby benchmark/shell.rb
Warming up --------------------------------------
digest_with_shell_openssl
                         4.000  i/100ms
digest_with_ruby_openssl
                        36.540k i/100ms
Calculating -------------------------------------
digest_with_shell_openssl
                         92.458  (±22.7%) i/s -    424.000  in   4.985251s
digest_with_ruby_openssl
                        453.025k (±10.1%) i/s -      2.265M in   5.057335s

Comparison:
digest_with_ruby_openssl:   453024.6 i/s
digest_with_shell_openssl:       92.5 i/s - 4899.78x  (± 0.00) slower