summaryrefslogtreecommitdiff
path: root/benchmark
Commit message (Collapse)AuthorAgeFilesLines
* * include/ruby/ruby.h: introduce flonum technique forko12012-08-231-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 64bit CPU environment (sizeof(double) == sizeof(VALUE)). flonum technique enables to avoid double object creation if the double value d is in range about between 1.72723e-77 < |d| <= 1.15792e+77 or 0.0. flonum Float value is immediate and their lowest two bits are b10. If flonum is activated, then USE_FLONUM macro is 1. I'll write detailed in this technique on https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/Flonum_tech * benchmark/bmx_temp.rb: add an benchmark for simple Float calculation. * gc.c (id2ref, rb_obj_id): add flonum Float support. * include/ruby/intern.h: move decl of rb_float_new(double) to include/ruby/ruby.h. * insns.def, vm.c, vm_insnhelper.c: add flonum optimization and simplify source code. * vm_insnhelper.h (FLONUM_2_P): added. * marshal.c: support flonum output. * numeric.c (rb_float_new_in_heap): added. * parse.y: support flonum. * random.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: fix typos.eregon2012-08-111-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm1_lvar_init.rb: fix newline code.nagachika2012-05-273-129/+129
| | | | | | | * benchmark/bm_vm2_bigarray.rb: ditto. * benchmark/bm_vm2_bighash.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm1_lvar_init.rb: added.ko12012-05-2736-32/+166
| | | | | | | | | | | | | | | This benchmark measures a initialize time of non-used variable. * benchmark/bm_vm1_lvar_set.rb: added. This benchmark measures a local variables initialization time. * benchmark/bm_vm2_bigarray.rb: added. This benchmark mesures a big array literal creation time. * benchmark/bm_vm2_bighash.rb: This benchmark mesures a big hash literal creation time. * benchmark/bm*: change notation "i=0" to "i = 0". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: fix to continue benchmarks whenko12012-05-271-3/+4
| | | | | | | | an error is occurred. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c (frame_info_to_str): add `break'.ko12012-05-261-0/+22
| | | | | | | | | | | | | | * vm.c (backtrace_object): remove lev and n parameter. backtrace_object always returns all of backtrace information. * vm.c (rb_backtrace_to_str_ary): fix to use backtrace_object(). This change improve performance of caller(lev, n). * benchmark/bm_vm3_backtrace.rb: added to check above improvement. FYI: measurement on my laptop, 1.9.3p229 needs 5.125 sec, and current trunk only needs 0.299sec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c: add RubyVM::Backtrace object (btobj).ko12012-05-242-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backtrace information contains an array consists of location information for each frames by string. RubyVM::Backtrace object is lightweight backtrace information, which contains complete information to generate traditional style backtrace (an array of strings) with faster generation. If someone accesses to backtrace information via Exception#backtrace, then convert a RubyVM::Backtrace object to traditonal style backtrace. This change causes incompatibility on marshal dumpped binary of Exception. If you have any trouble on it, please tell us before Ruby 2.0 release. Note that RubyVM::Backtrace object should not expose Ruby level. * error.c, eval.c, vm_eval.c: ditto. * internal.h: ditto. * eval_error.c: fix to skip "set_backtrace" method invocation in creating an exception object if it call a normal set_backtrace method (defined by core). * test/ruby/test_settracefunc.rb: fix for above change. * vm_method.c (rb_method_defined_by): added. This function checks that the given object responds with the given method by the given cfunc. * benchmark/bm_vm2_raise1.rb, benchmark/bm_vm2_raise2.rb: add to measure exception creation speed. raise1 create exception objects from shallow stack frame. raise2 create exception objects from deep stack frame. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: suppress unused/shadowing variable warnings.ktsj2012-02-121-5/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_io_select[23].rb: use Process::RLIMIT_NOFILE only whenusa2011-11-172-2/+10
| | | | | | | it is defined. if it is not defined, assume 64 as the max of fds. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: Add difference column to report that averagesdrbrain2011-07-061-1/+20
| | | | | | | across all runs of a benchmark. [Ruby 1.9 - Feature #4982] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_app_erb.rb: increase loop count. too shortkosaki2011-07-0141-44/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mesurement time makes less accuracy. * benchmark/bm_app_factorial.rb: ditto. * benchmark/bm_app_mandelbrot.rb: ditto. * benchmark/bm_app_strconcat.rb: ditto. * benchmark/bm_io_file_create.rb: ditto. * benchmark/bm_io_file_read.rb: ditto. * benchmark/bm_io_file_write.rb: ditto. * benchmark/bm_so_concatenate.rb: ditto. * benchmark/bm_so_lists.rb: ditto. * benchmark/bm_so_matrix.rb: ditto. * benchmark/bm_so_random.rb: ditto. * benchmark/bm_so_sieve.rb: ditto. * benchmark/bm_vm_thread_mutex1.rb: ditto. * benchmark/bm_vm_thread_mutex2.rb: ditto. * benchmark/bm_vm_thread_mutex3.rb: ditto. * benchmark/bm_vm1_block.rb: cleanup. * benchmark/bm_vm1_const.rb: cleanup. * benchmark/bm_vm1_ensure.rb: cleanup. * benchmark/bm_vm1_ivar.rb: cleanup. * benchmark/bm_vm1_length.rb: cleanup. * benchmark/bm_vm1_neq.rb: cleanup. * benchmark/bm_vm1_not.rb: cleanup. * benchmark/bm_vm1_rescue.rb: cleanup. * benchmark/bm_vm1_simplereturn.rb: cleanup. * benchmark/bm_vm1_swap.rb: cleanup. * benchmark/bm_vm2_array.rb: cleanup. * benchmark/bm_vm2_case.rb: cleanup. * benchmark/bm_vm2_defined_method.rb: cleanup. * benchmark/bm_vm2_eval.rb: cleanup. * benchmark/bm_vm2_method.rb: cleanup. * benchmark/bm_vm2_mutex.rb: cleanup. * benchmark/bm_vm2_poly_method.rb: cleanup. * benchmark/bm_vm2_poly_method_ov.rb: cleanup. * benchmark/bm_vm2_proc.rb: cleanup. * benchmark/bm_vm2_regexp.rb: cleanup. * benchmark/bm_vm2_send.rb: cleanup. * benchmark/bm_vm2_super.rb: cleanup. * benchmark/bm_vm2_unif1.rb: cleanup. * benchmark/bm_vm2_zsuper.rb: cleanup. * benchmark/bm_vm_thread_alive_check1.rb: cleanup. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * sytle fixes.nobu2011-06-301-9/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm2_defined_method.rb: added to measure performance ofko12011-06-301-0/+9
| | | | | | | | bmethod (method defined by define_method()). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm4_thread_create_join.rb,ko12011-06-164-0/+0
| | | | | | | | | benchmark/bm_vm4_thread_mutex[1-3].rb: renamed to bm_thread_* (fix last rename). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm3_thread_*.rb: renamed bm_vm3_thread_*.rb toko12011-06-144-0/+0
| | | | | | | | benchmark/bm_vm_thread_*.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm4_thread_pass.rb: rename bm_vm4* tokosaki2011-06-144-0/+0
| | | | | | | | | | | bm_vm_thread_*. suggested by ko1. * benchmark/bm_vm4_pipe.rb: ditto. * benchmark/bm_vm4_alive_check1.rb: ditto. * benchmark/bm_vm4_pass_flood.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm4_pass_flood.rb: new benchmark for GVL fairness.kosaki2011-06-142-0/+14
| | | | | | | | * benchmark/bm_vm4_alive_check1.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.nobu2011-06-134-70/+70
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm3_clearmethodcache.rb: added.ko12011-06-121-0/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm3_thread_mutex.rb: remove it.ko12011-06-123-18/+62
| | | | | | | | | | | | | * benchmark/bm_vm3_thread_mutex[1-3].rb: added 3 benchmarks. 1: one thread with one mutex (no contention). 2: two threads with one mutex (contention). 3: 1000 threads with one mutex (huge number of contention) Abobe removed benchmark was type 3. Therefore, this commit adds type 1 and 2 benchmark. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.nobu2011-05-154-7/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm4_pipe.rb: Reduced iterations. Too slow benchmarkkosaki2011-05-042-2/+2
| | | | | | | | | is bad. * benchmark/bm_vm4_thread_pass.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_io_select2.rb: reduce number of using filekosaki2011-05-041-1/+1
| | | | | | | | descriptors. because gdb need some fds. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_io_select3.rb: New.kosaki2011-04-302-1/+18
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_io_select.rb, benchmark/bm_io_select2.rb: New.kosaki2011-04-302-0/+27
| | | | | | | | based on a patch from Eric Wong at [Feature #4531] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm4_pipe.rb: Add two new benchmark for GVLkosaki2011-04-292-0/+32
| | | | | | | | | performance. They was written by Koichi Sasada. * benchmark/bm_vm4_thread_pass.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb (BenchmarkDriver#measure): Show command linekosaki2011-01-291-1/+1
| | | | | | | | when abnormal exiting occur. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/mkconfig.rb: generate RbConfig.ruby in rbconfig.rb.akr2009-12-312-6/+2
| | | | | | | | | | | | | | | | * lib/webrick/httpservlet/cgihandler.rb: use RbConfig.ruby. * test/ruby/envutil.rb: ditto. * benchmark/report.rb: ditto. * benchmark/runc.rb: ditto. * tool/eval.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: remove RUBY_VERSION output.ko12009-09-061-2/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * runruby.rb: use RbConfig::CONFIG instead of Config::CONFIG.akr2009-04-302-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | * spec/default.mspec: ditto. * yarvtest/yarvtest.rb: ditto. * instruby.rb: ditto. * benchmark/report.rb: ditto. * benchmark/runc.rb: ditto. * tool/eval.rb: ditto. * test/rubygems/test_gem.rb: ditto. * test/rubygems/test_config.rb: ditto. * test/rubygems/test_gem_platform.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* properties.nobu2008-10-101-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y: optimize 'for' statement when one variable given.ko12008-10-102-1/+4
| | | | | | | | | * benchmark/bm_loop_for.rb: added. * benchmark/bm_loop_times.rb: modified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling.ko12008-05-191-0/+9
| | | | | | | | | | | | | | VM value stack frame of block contains cref information. (dfp[-1] points CREF) * compile.c, eval_intern.h, eval_method.c, load.c, proc.c, vm_dump.h, vm_core.h: ditto. * include/ruby/ruby.h, gc.c: remove T_VALUES because of above changes. * bootstraptest/test_eval.rb, test_knownbug.rb: move solved test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h (rb_vm_t), gc.c (rb_objspace, rb_newobj), vm.cnobu2008-04-271-0/+7
| | | | | | | | | | | | | (Init_BareVM): per-VM object space support, which is disabled now. * gc.c (rb_objspace_alloc), vm.c (Init_BareVM): should not use ruby malloc here. * gc.c (garbage_collect, etc): performance improvement by passing the reference instead of refering the global variable in each functions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regerror.c, string.c, io.c, lib/getoptlong.rb, lib/net/imap.rb,akr2007-12-211-1/+1
| | | | | | | | | | | compile.c, sprintf.c, parse.y, ext/win32ole/win32ole.c, ext/tk/sample/demos-en/entry3.rb, ext/tk/lib/tcltk.rb, ext/openssl/ossl_bn.c, numeric.c, vm.c, benchmark/bm_so_meteor_contest.rb, bignum.c, ruby.c: don't "illegal" for non law violation context. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm1_neq.rb, bm_vm1_not.rb: prop set.ko12007-12-102-15/+15
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm1_neq.rb, bm_vm1_not.rb: added.ko12007-12-102-0/+15
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c: fix to recycle thread data (VM stack).ko12007-11-211-1/+1
| | | | | | | | | * thread.c: ditto. * benchmark/bm_vm3_thread_create_join.rb: add loop count. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: add path to trunk/lib if driver runner isko12007-11-211-1/+16
| | | | | | | | in build directory. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * set eol-style.nobu2007-11-1625-1644/+1644
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: enable specify label to executable.ko12007-10-031-2/+8
| | | | | | | | (-e "ruby1::/path/to/ruby1; ruby2::/path/to/ruby2; ...") git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_so_fasta.rb: added.ko12007-09-286-0/+182
| | | | | | | | | | | | * benchmark/bm_so_k_nucleotide.rb: added. * benchmark/bm_so_reverse_complement.rb: added. * benchmark/make_fasta_output.rb: added. * benchmark/prepare_so_k_nucleotide.rb: added. * benchmark/prepare_so_reverse_complement.rb: added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: fix notations.ko12007-09-2815-4/+1140
| | | | | | | | | | | | | | | | | | | | | | * benchmark/bm_loop_whileloop.rb: ditto. * benchmark/bm_loop_whileloop2.rb: ditto. * benchmark/bm_app_uri.rb: added. * benchmark/bm_vm1_ivar_set.rb: ditto. * benchmark/bm_so_binary_trees.rb: added from Computer Language Benchmarks Game (http://shootout.alioth.debian.org/). * benchmark/bm_so_fannkuch.rb: ditto. * benchmark/bm_so_mandelbrot.rb: ditto. * benchmark/bm_so_meteor_contest.rb: ditto. * benchmark/bm_so_nbody.rb: ditto. * benchmark/bm_so_nsieve.rb: ditto. * benchmark/bm_so_nsieve_bits.rb: ditto. * benchmark/bm_so_partial_sums.rb: ditto. * benchmark/bm_so_pidigits.rb: ditto. * benchmark/bm_so_spectralnorm.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: fix to output benchmark resultsko12007-09-283-37/+62
| | | | | | | | | | to file "bmlog-#{Time.now.strftime('%Y%m%d-%H%M%S')}.#{$$}". * benchmark/bm_io_file_create.rb: remove useless codes. * benchmark/bm_vm2_eval.rb: added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_app_erb.rb: added.ko12007-09-284-0/+71
| | | | | | | | * benchmark/bm_io_file_(create|read|write).rb: added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: fix file selection algorithm.ko12007-09-281-14/+34
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: fix to output some helpful messages.ko12007-09-272-9/+22
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: added.ko12007-09-274-2/+193
| | | | | | | | | | * common.mk: fix to use above driver. * benchmark/prepare_so_count_words.rb: added. * benchmark/bm_so_count_words.rb: fix benchmark process. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* new file.akr2007-09-261-0/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c: fix Mutex to be interruptable lock.ko12007-08-276-29/+60
| | | | | | | | | | | | | | | | | | | * thread_win32.ci, thread_win32.h, thread_pthread.ci, thread_pthread.h: prepare native_cond_*() which are based on pthread_cond_*() spec. * prelude.rb: fix Mutex#synchronize method. * vm_core.h, include/ruby/intern.h: change unblock function interface (to pass some user data). * file.c, process.c: ditto. * benchmark/bm_vm2_mutex.rb: add a benchmark for mutex. * benchmark/bm_vm3_thread_mutex.rb: add a benchmark for mutex with contension. * benchmark/run.rb: fix to remove ENV['RUBYLIB'] for matzruby. * test/ruby/test_thread.rb: add a test. * common.mk: fix benchmark options. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e