• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

gc/H24-Nov-2021-497403

lib/H24-Nov-2021-448315

other-lang/H24-Nov-2021-273207

README.mdH A D24-Nov-20212.8 KiB7353

app_answer.rbH A D24-Nov-2021310 1613

app_aobench.rbH A D24-Nov-20216.1 KiB292235

app_erb.ymlH A D24-Nov-2021368 2421

app_factorial.rbH A D24-Nov-202193 1210

app_fib.rbH A D24-Nov-202178 118

app_lc_fizzbuzz.rbH A D24-Nov-202115.5 KiB5331

app_mandelbrot.rbH A D24-Nov-2021280 2419

app_pentomino.rbH A D24-Nov-20212 KiB131116

app_raise.rbH A D24-Nov-202167 98

app_strconcat.rbH A D24-Nov-202162 65

app_tak.rbH A D24-Nov-2021146 1410

app_tarai.rbH A D24-Nov-2021162 119

app_uri.rbH A D24-Nov-2021113 97

array_sample_100k_10.rbH A D24-Nov-202149 32

array_sample_100k_11.rbH A D24-Nov-202149 32

array_sample_100k__100.rbH A D24-Nov-202150 32

array_sample_100k__1k.rbH A D24-Nov-202151 32

array_sample_100k__6k.rbH A D24-Nov-202151 32

array_sample_100k___10k.rbH A D24-Nov-202153 32

array_sample_100k___50k.rbH A D24-Nov-202153 32

array_shift.rbH A D24-Nov-2021298 1513

array_small_and.rbH A D24-Nov-2021442 1815

array_small_diff.rbH A D24-Nov-2021442 1815

array_small_or.rbH A D24-Nov-2021442 1815

array_sort_block.rbH A D24-Nov-202181 32

array_sort_float.rbH A D24-Nov-202156 32

array_values_at_int.rbH A D24-Nov-202167 32

array_values_at_range.rbH A D24-Nov-202171 32

bighash.rbH A D24-Nov-202138 21

dir_empty_p.rbH A D24-Nov-2021107 65

enum_lazy_grep_v_100.rbH A D24-Nov-2021129 54

enum_lazy_grep_v_20.rbH A D24-Nov-2021127 54

enum_lazy_grep_v_50.rbH A D24-Nov-2021127 54

enum_lazy_uniq_100.rbH A D24-Nov-2021124 54

enum_lazy_uniq_20.rbH A D24-Nov-2021122 54

enum_lazy_uniq_50.rbH A D24-Nov-2021122 54

erb_render.ymlH A D24-Nov-2021452 2521

fiber_chain.rbH A D24-Nov-2021651 4130

file_chmod.rbH A D24-Nov-2021143 108

file_rename.rbH A D24-Nov-2021271 129

hash_aref_dsym.rbH A D24-Nov-2021114 54

hash_aref_dsym_long.rbH A D24-Nov-2021474 2214

hash_aref_fix.rbH A D24-Nov-202195 54

hash_aref_flo.rbH A D24-Nov-2021111 54

hash_aref_miss.rbH A D24-Nov-2021136 65

hash_aref_str.rbH A D24-Nov-2021113 54

hash_aref_sym.rbH A D24-Nov-2021199 109

hash_aref_sym_long.rbH A D24-Nov-2021428 1413

hash_flatten.rbH A D24-Nov-202175 107

hash_ident_flo.rbH A D24-Nov-2021126 54

hash_ident_num.rbH A D24-Nov-2021115 54

hash_ident_obj.rbH A D24-Nov-2021130 54

hash_ident_str.rbH A D24-Nov-2021118 54

hash_ident_sym.rbH A D24-Nov-2021132 54

hash_keys.rbH A D24-Nov-202172 107

hash_literal_small2.rbH A D24-Nov-202191 41

hash_literal_small4.rbH A D24-Nov-2021123 41

hash_literal_small8.rbH A D24-Nov-2021193 41

hash_long.rbH A D24-Nov-2021297 54

hash_shift.rbH A D24-Nov-202192 118

hash_shift_u16.rbH A D24-Nov-2021101 118

hash_shift_u24.rbH A D24-Nov-2021107 118

hash_shift_u32.rbH A D24-Nov-2021111 118

hash_small2.rbH A D24-Nov-202152 21

hash_small4.rbH A D24-Nov-202152 21

hash_small8.rbH A D24-Nov-202152 21

hash_to_proc.rbH A D24-Nov-202181 107

hash_values.rbH A D24-Nov-202174 107

int_quo.rbH A D24-Nov-202128 21

io_copy_stream_write.rbH A D24-Nov-2021570 2516

io_copy_stream_write_socket.rbH A D24-Nov-2021809 3628

io_file_create.rbH A D24-Nov-2021146 147

io_file_read.rbH A D24-Nov-2021172 169

io_file_write.rbH A D24-Nov-2021166 158

io_nonblock_noex.rbH A D24-Nov-2021341 2322

io_nonblock_noex2.rbH A D24-Nov-2021337 2221

io_pipe_rw.rbH A D24-Nov-2021279 1411

io_select.rbH A D24-Nov-202192 105

io_select2.rbH A D24-Nov-2021394 2316

io_select3.rbH A D24-Nov-2021334 2216

loop_for.rbH A D24-Nov-202131 42

loop_generator.rbH A D24-Nov-2021183 1513

loop_times.rbH A D24-Nov-202122 21

loop_whileloop.rbH A D24-Nov-202157 54

loop_whileloop2.rbH A D24-Nov-202157 54

marshal_dump_flo.rbH A D24-Nov-202179 32

marshal_dump_load_geniv.rbH A D24-Nov-2021173 119

marshal_dump_load_time.rbH A D24-Nov-202154 21

require.ymlH A D24-Nov-2021643 3728

require_thread.ymlH A D24-Nov-2021754 4535

securerandom.rbH A D24-Nov-202179 64

so_ackermann.rbH A D24-Nov-2021315 2011

so_array.rbH A D24-Nov-2021409 2411

so_binary_trees.rbH A D24-Nov-20211.3 KiB6341

so_concatenate.rbH A D24-Nov-2021337 199

so_count_words.ymlH A D24-Nov-20216.9 KiB6756

so_exception.rbH A D24-Nov-2021874 6247

so_fannkuch.rbH A D24-Nov-2021928 4634

so_fasta.rbH A D24-Nov-20211.8 KiB8268

so_k_nucleotide.ymlH A D24-Nov-20213.9 KiB156133

so_lists.rbH A D24-Nov-20211,001 4830

so_mandelbrot.rbH A D24-Nov-20211.4 KiB5837

so_matrix.rbH A D24-Nov-20211,010 4936

so_meteor_contest.rbH A D24-Nov-202120.8 KiB564338

so_nbody.rbH A D24-Nov-20212.9 KiB149113

so_nested_loop.rbH A D24-Nov-2021457 2515

so_nsieve.rbH A D24-Nov-2021679 3626

so_nsieve_bits.rbH A D24-Nov-2021841 4430

so_object.rbH A D24-Nov-2021992 5742

so_partial_sums.rbH A D24-Nov-2021774 3226

so_pidigits.rbH A D24-Nov-20211.6 KiB9369

so_random.rbH A D24-Nov-2021289 2113

so_reverse_complement.ymlH A D24-Nov-20213.4 KiB138121

so_sieve.rbH A D24-Nov-2021399 2522

so_spectralnorm.rbH A D24-Nov-2021870 5139

string_index.rbH A D24-Nov-2021106 43

string_scan_re.rbH A D24-Nov-202172 32

string_scan_str.rbH A D24-Nov-202172 32

time_subsec.rbH A D24-Nov-202140 32

vm1_attr_ivar.ymlH A D24-Nov-2021200 1514

vm1_attr_ivar_set.ymlH A D24-Nov-2021206 1514

vm1_block.ymlH A D24-Nov-202195 109

vm1_blockparam.ymlH A D24-Nov-202188 87

vm1_blockparam_call.ymlH A D24-Nov-2021104 98

vm1_blockparam_pass.ymlH A D24-Nov-2021153 1311

vm1_blockparam_yield.ymlH A D24-Nov-2021118 98

vm1_const.ymlH A D24-Nov-202198 87

vm1_ensure.ymlH A D24-Nov-2021246 1514

vm1_float_simple.ymlH A D24-Nov-2021144 98

vm1_gc_short_lived.ymlH A D24-Nov-2021143 109

vm1_gc_short_with_complex_long.ymlH A D24-Nov-2021379 2623

vm1_gc_short_with_long.ymlH A D24-Nov-2021228 1413

vm1_gc_short_with_symbol.ymlH A D24-Nov-2021225 1413

vm1_gc_wb_ary.ymlH A D24-Nov-2021270 1310

vm1_gc_wb_ary_promoted.ymlH A D24-Nov-2021301 1612

vm1_gc_wb_obj.ymlH A D24-Nov-2021313 1613

vm1_gc_wb_obj_promoted.ymlH A D24-Nov-2021344 1815

vm1_ivar.ymlH A D24-Nov-202188 76

vm1_ivar_set.ymlH A D24-Nov-202172 65

vm1_length.ymlH A D24-Nov-2021113 98

vm1_lvar_init.ymlH A D24-Nov-2021582 2219

vm1_lvar_set.ymlH A D24-Nov-2021124 54

vm1_neq.ymlH A D24-Nov-2021113 87

vm1_not.ymlH A D24-Nov-202184 76

vm1_rescue.ymlH A D24-Nov-202177 76

vm1_simplereturn.ymlH A D24-Nov-202192 87

vm1_swap.ymlH A D24-Nov-202189 87

vm1_yield.ymlH A D24-Nov-2021217 1412

vm2_array.ymlH A D24-Nov-202177 54

vm2_bigarray.ymlH A D24-Nov-20212.8 KiB106105

vm2_bighash.ymlH A D24-Nov-20214.7 KiB54

vm2_case.ymlH A D24-Nov-2021172 1413

vm2_case_lit.ymlH A D24-Nov-2021533 2422

vm2_defined_method.ymlH A D24-Nov-2021139 98

vm2_dstr.ymlH A D24-Nov-2021100 76

vm2_eval.ymlH A D24-Nov-202159 54

vm2_fiber_switch.ymlH A D24-Nov-2021208 109

vm2_freezestring.ymlH A D24-Nov-2021198 1110

vm2_method.ymlH A D24-Nov-2021108 98

vm2_method_missing.ymlH A D24-Nov-2021192 1210

vm2_method_with_block.ymlH A D24-Nov-2021135 98

vm2_module_ann_const_set.ymlH A D24-Nov-2021102 54

vm2_module_const_set.ymlH A D24-Nov-2021134 98

vm2_mutex.ymlH A D24-Nov-2021121 97

vm2_newlambda.ymlH A D24-Nov-202164 54

vm2_poly_method.ymlH A D24-Nov-2021382 2522

vm2_poly_method_ov.ymlH A D24-Nov-2021386 2522

vm2_poly_singleton.ymlH A D24-Nov-2021362 1916

vm2_proc.ymlH A D24-Nov-2021116 1311

vm2_raise1.ymlH A D24-Nov-2021188 1716

vm2_raise2.ymlH A D24-Nov-2021189 1716

vm2_regexp.ymlH A D24-Nov-202197 76

vm2_send.ymlH A D24-Nov-2021121 1210

vm2_string_literal.ymlH A D24-Nov-2021129 54

vm2_struct_big_aref_hi.ymlH A D24-Nov-2021149 87

vm2_struct_big_aref_lo.ymlH A D24-Nov-2021149 87

vm2_struct_big_aset.ymlH A D24-Nov-2021261 1211

vm2_struct_big_href_hi.ymlH A D24-Nov-2021143 87

vm2_struct_big_href_lo.ymlH A D24-Nov-2021143 87

vm2_struct_big_hset.ymlH A D24-Nov-2021251 1211

vm2_struct_small_aref.ymlH A D24-Nov-2021118 87

vm2_struct_small_aset.ymlH A D24-Nov-2021229 1211

vm2_struct_small_href.ymlH A D24-Nov-2021120 87

vm2_struct_small_hset.ymlH A D24-Nov-2021124 87

vm2_super.ymlH A D24-Nov-2021173 1815

vm2_unif1.ymlH A D24-Nov-202191 87

vm2_zsuper.ymlH A D24-Nov-2021185 1916

vm3_backtrace.rbH A D24-Nov-2021252 2318

vm3_clearmethodcache.rbH A D24-Nov-202168 97

vm3_gc.rbH A D24-Nov-202171 76

vm3_gc_old_full.rbH A D24-Nov-202166 54

vm3_gc_old_immediate.rbH A D24-Nov-2021110 54

vm3_gc_old_lazy.rbH A D24-Nov-2021111 54

vm_symbol_block_pass.rbH A D24-Nov-2021156 1412

vm_thread_alive_check1.rbH A D24-Nov-202173 76

vm_thread_close.rbH A D24-Nov-2021114 76

vm_thread_condvar1.rbH A D24-Nov-2021476 2927

vm_thread_condvar2.rbH A D24-Nov-2021713 3634

vm_thread_create_join.rbH A D24-Nov-202177 76

vm_thread_mutex1.rbH A D24-Nov-2021289 2219

vm_thread_mutex2.rbH A D24-Nov-2021278 2219

vm_thread_mutex3.rbH A D24-Nov-2021259 2118

vm_thread_pass.rbH A D24-Nov-2021220 169

vm_thread_pass_flood.rbH A D24-Nov-2021144 117

vm_thread_pipe.rbH A D24-Nov-2021267 1813

vm_thread_queue.rbH A D24-Nov-2021200 1914

vm_thread_sized_queue.rbH A D24-Nov-2021254 2115

vm_thread_sized_queue2.rbH A D24-Nov-2021336 2419

vm_thread_sized_queue3.rbH A D24-Nov-2021323 2319

vm_thread_sized_queue4.rbH A D24-Nov-2021387 2722

README.md

1# ruby/benchmark
2
3This directory has benchmark definitions to be run with
4[benchmark\_driver.gem](https://github.com/benchmark-driver/benchmark-driver).
5
6## Normal usage
7
8Execute `gem install benchmark_driver` and run a command like:
9
10```bash
11# Run a benchmark script with the ruby in the $PATH
12benchmark-driver benchmark/app_fib.rb
13
14# Run benchmark scripts with multiple Ruby executables or options
15benchmark-driver benchmark/*.rb -e /path/to/ruby -e '/path/to/ruby --jit'
16
17# Or compare Ruby versions managed by rbenv
18benchmark-driver benchmark/*.rb --rbenv '2.5.1;2.6.0-preview2 --jit'
19
20# You can collect many metrics in many ways
21benchmark-driver benchmark/*.rb --runner memory --output markdown
22
23# Some are defined with YAML for complex setup or accurate measurement
24benchmark-driver benchmark/*.yml
25```
26
27See also:
28
29```console
30Usage: benchmark-driver [options] RUBY|YAML...
31    -r, --runner TYPE                Specify runner type: ips, time, memory, once (default: ips)
32    -o, --output TYPE                Specify output type: compare, simple, markdown, record (default: compare)
33    -e, --executables EXECS          Ruby executables (e1::path1 arg1; e2::path2 arg2;...)
34        --rbenv VERSIONS             Ruby executables in rbenv (x.x.x arg1;y.y.y arg2;...)
35        --repeat-count NUM           Try benchmark NUM times and use the fastest result or the worst memory usage
36        --repeat-result TYPE         Yield "best", "average" or "worst" result with --repeat-count (default: best)
37        --bundler                    Install and use gems specified in Gemfile
38        --filter REGEXP              Filter out benchmarks with given regexp
39        --run-duration SECONDS       Warmup estimates loop_count to run for this duration (default: 3)
40    -v, --verbose                    Verbose mode. Multiple -v options increase visilibity (max: 2)
41```
42
43## make benchmark
44
45Using `make benchmark`, `make update-benchmark-driver` automatically downloads
46the supported version of benchmark\_driver, and it runs benchmarks with the downloaded
47benchmark\_driver.
48
49```bash
50# Run all benchmarks with the ruby in the $PATH and the built ruby
51make benchmark
52
53# Or compare with specific ruby binary
54make benchmark COMPARE_RUBY="/path/to/ruby --jit"
55
56# Run vm1 benchmarks
57make benchmark ITEM=vm1
58
59# Run some limited benchmarks in ITEM-matched files
60make benchmark ITEM=vm1 OPTS=--filter=block
61
62# You can specify the benchmark by an exact filename instead of using the default argument:
63# ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb')
64make benchmark ARGS=../benchmark/erb_render.yml
65
66# You can specify any option via $OPTS
67make benchmark OPTS="--help"
68
69# With `make benchmark`, some special runner plugins are available:
70#   -r peak, -r size, -r total, -r utime, -r stime, -r cutime, -r cstime
71make benchmark ITEM=vm2_bigarray OPTS="-r peak"
72```
73