ruby/benchmark
k0kubun f328fe40b3 benchmark_driver/runner: add runners for metrics
supported by legacy benchmark/driver.rb.

benchmark/README.md: document them

common.mk: update benchmark_driver to correct 0.0 output and to fix
spacing format of `-o simple` and `-o markdown`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 15:01:27 +00:00
..
gc benchmark/gc: prevent GC bench from depending on normal benchmark 2018-07-08 17:31:06 +00:00
lib/benchmark_driver/runner benchmark_driver/runner: add runners for metrics 2018-07-10 15:01:27 +00:00
other-lang * benchmark/: add missing spaces around assignment operators (= and +=) for 2012-10-15 12:53:12 +00:00
README.md benchmark_driver/runner: add runners for metrics 2018-07-10 15:01:27 +00:00
app_answer.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_aobench.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_erb.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_factorial.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_fib.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_lc_fizzbuzz.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_mandelbrot.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_pentomino.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_raise.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_strconcat.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_tak.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_tarai.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
app_uri.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sample_100k_10.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sample_100k_11.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sample_100k__1k.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sample_100k__6k.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sample_100k__100.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sample_100k___10k.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sample_100k___50k.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_shift.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_small_and.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_small_diff.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_small_or.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sort_block.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_sort_float.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_values_at_int.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
array_values_at_range.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
bighash.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
dir_empty_p.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
erb_render.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
file_chmod.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
file_rename.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_dsym.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_dsym_long.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_fix.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_flo.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_miss.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_str.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_sym.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_aref_sym_long.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_flatten.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_ident_flo.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_ident_num.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_ident_obj.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_ident_str.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_ident_sym.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_keys.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_long.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_shift.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_shift_u16.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_shift_u24.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_shift_u32.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_small2.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_small4.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_small8.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_to_proc.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
hash_values.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
int_quo.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_copy_stream_write.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_copy_stream_write_socket.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_file_create.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_file_read.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_file_write.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_nonblock_noex.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_nonblock_noex2.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_pipe_rw.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_select.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_select2.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
io_select3.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
loop_for.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
loop_generator.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
loop_times.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
loop_whileloop.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
loop_whileloop2.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
marshal_dump_flo.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
marshal_dump_load_geniv.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
marshal_dump_load_time.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
require.yml benchmark: introduce benchmark_driver.gem 2018-07-08 14:38:05 +00:00
require_thread.yml benchmark: introduce benchmark_driver.gem 2018-07-08 14:38:05 +00:00
securerandom.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_ackermann.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_array.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_binary_trees.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_concatenate.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_count_words.yml benchmark: introduce benchmark_driver.gem 2018-07-08 14:38:05 +00:00
so_exception.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_fannkuch.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_fasta.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_k_nucleotide.yml benchmark: introduce benchmark_driver.gem 2018-07-08 14:38:05 +00:00
so_lists.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_mandelbrot.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_matrix.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_meteor_contest.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_nbody.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_nested_loop.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_nsieve.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_nsieve_bits.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_object.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_partial_sums.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_pidigits.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_random.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_reverse_complement.yml benchmark: introduce benchmark_driver.gem 2018-07-08 14:38:05 +00:00
so_sieve.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
so_spectralnorm.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
string_index.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
string_scan_re.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
string_scan_str.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
time_subsec.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm1_attr_ivar.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_attr_ivar_set.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_block.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_blockparam.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_blockparam_call.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_blockparam_pass.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_blockparam_yield.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_const.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_ensure.yml benchmark/vm1_ensure.yml: rollback loop_count abstraction 2018-07-08 16:46:49 +00:00
vm1_float_simple.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_short_lived.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_short_with_complex_long.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_short_with_long.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_short_with_symbol.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_wb_ary.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_wb_ary_promoted.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_wb_obj.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_gc_wb_obj_promoted.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_ivar.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_ivar_set.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_length.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_lvar_init.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_lvar_set.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_neq.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_not.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_rescue.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm1_simplereturn.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_swap.yml benchmark/vm1_*.yml: manual fixes for ugly conversions 2018-07-08 16:35:44 +00:00
vm1_yield.yml benchmark/vm1_*.yml: abstract away the while loop 2018-07-08 16:28:34 +00:00
vm2_array.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_bigarray.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_bighash.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_case.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_case_lit.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_defined_method.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_dstr.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_eval.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_fiber_switch.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_method.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_method_missing.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_method_with_block.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_module_ann_const_set.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_module_const_set.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_mutex.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_newlambda.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_poly_method.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_poly_method_ov.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_poly_singleton.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_proc.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_raise1.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_raise2.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_regexp.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_send.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_string_literal.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_big_aref_hi.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_big_aref_lo.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_big_aset.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_big_href_hi.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_big_href_lo.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_big_hset.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_small_aref.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_small_aset.yml benchmark/vm2_struct_small_aset.yml: unwrap loop_count 2018-07-08 17:22:58 +00:00
vm2_struct_small_href.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_struct_small_hset.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_super.yml benchmark/vm2_*.yml: fix ugly conversion errors 2018-07-08 17:19:57 +00:00
vm2_unif1.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm2_zsuper.yml benchmark/vm2_*.yml: abstract away the while loop 2018-07-08 17:03:23 +00:00
vm3_backtrace.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm3_clearmethodcache.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm3_gc.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm3_gc_old_full.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm3_gc_old_immediate.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm3_gc_old_lazy.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_symbol_block_pass.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_alive_check1.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_close.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_condvar1.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_condvar2.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_create_join.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_mutex1.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_mutex2.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_mutex3.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_pass.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_pass_flood.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_pipe.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_queue.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_sized_queue.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_sized_queue2.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_sized_queue3.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00
vm_thread_sized_queue4.rb benchmark: drop all bm_ prefix for legacy driver.rb 2018-07-10 13:08:40 +00:00

README.md

ruby/benchmark

This directory has benchmark definitions to be run with benchmark_driver.gem.

Normal usage

Execute gem install benchmark_driver and run a command like:

# Run a benchmark script with the ruby in the $PATH
benchmark-driver benchmark/erb_render.yml

# Run all benchmark scripts with multiple Ruby executables or options
benchmark-driver benchmark/*.yml -e /path/to/ruby -e '/path/to/ruby --jit'

# Or compare Ruby versions managed by rbenv
benchmark-driver benchmark/*.yml --rbenv '2.5.1;2.6.0-preview2 --jit'

# You can collect many metrics in many ways
benchmark-driver benchmark/*.yml --runner memory --output markdown

See also:

$ benchmark-driver --help
Usage: benchmark-driver [options] [YAML|RUBY]
    -r, --runner [TYPE]              Specify runner type: ips, time, memory, once (default: ips)
    -o, --output [TYPE]              Specify output type: compare, simple, markdown, record (default: compare)
    -e, --executables [EXECS]        Ruby executables (e1::path1,arg1,...; e2::path2,arg2;...)
        --rbenv [VERSIONS]           Ruby executables in rbenv (x.x.x,arg1,...;y.y.y,arg2,...;...)
        --repeat-count [NUM]         Try benchmark NUM times and use the fastest result or the worst memory usage
        --repeat-result [TYPE]       Yield "best", "average" or "worst" result with --repeat-count (default: best)
        --bundler                    Install and use gems specified in Gemfile
        --filter [REGEXP]            Filter out benchmarks with given regexp
        --run-duration [SECONDS]     Warmup estimates loop_count to run for this duration (default: 3)
    -v, --verbose                    Verbose mode. Multiple -v options increase visilibity (max: 2)

make benchmark

Using make benchmark, make update-benchmark-driver automatically downloads the supported version of benchmark_driver, and it runs benchmarks with the downloaded benchmark-driver.

# Run all benchmarks with the ruby in the $PATH and the built ruby
make benchmark

# Or compare with specific ruby binary
make benchmark COMPARE_RUBY="/path/to/ruby --jit"

# Run vm1 benchmarks
make benchmark ITEM=vm1

# Run some limited benchmarks in ITEM-matched files
make benchmark ITEM=vm1 OPTS=--filter=block

# You can specify the benchmark by an exact filename instead of using the default argument:
# ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb')
make benchmark ARGS=../benchmark/erb_render.yml

# You can specify any option via $OPTS
make benchmark OPTS="--help"

# With `make benchmark`, some special runner plugins are available:
#   -r peak, -r size, -r total, -r utime, -r stime, -r cutime, -r cstime
make benchmark ITEM=vm2_bigarray OPTS="-r peak"