public
Description: A set of Ruby benchmarks for testing Ruby implementations.
Homepage: http://groups.google.com/group/ruby-benchmark-suite
Clone URL: git://github.com/acangiano/ruby-benchmark-suite.git
rdp (author)
Thu Oct 29 11:43:02 -0700 2009
commit  a480570b879cbfcb6c0bfb32749708e0248910b1
tree    f636809e1fcdf8852917c1c0f1af92b60ce0531b
parent  e1566ad23988d88389b9540714e4d79c6a8c03a0
name age message
file .gitignore Mon Mar 30 07:57:23 -0700 2009 Fixing accidental push of MegLev specific bench... [Monty]
file LICENSE Wed Mar 11 07:55:06 -0700 2009 Added Brian Ford's refactoring and new drivers.... [Monty]
file README Sat Oct 10 17:06:27 -0700 2009 add in memory readings for windows--uses ruby-w... [rdp]
file Rakefile Sat Jun 13 16:45:55 -0700 2009 overcome merge difficulty [rdp]
directory benchmarks/ Loading commit data...
directory deprecated/ Wed Aug 26 19:53:18 -0700 2009 Refactored directory structure. [acangiano]
directory docs/ Wed Aug 26 19:53:18 -0700 2009 Refactored directory structure. [acangiano]
directory rakelib/ Sat Oct 10 17:06:27 -0700 2009 add in memory readings for windows--uses ruby-w... [rdp]
directory utils/
README
The Ruby Benchmark Suite is a suite for measuring the performance of Ruby implementations, including micro-benchmarks 
that focus on core Ruby functionalities, as well as macro-benchmarks that represent a variety of real, common workloads. 
The project is aimed at providing a useful suite for comparing the performance of the available Ruby implementations 
and, as a positive side effect, to give VM implementers an additional tool to measure and identity performance related 
issues.

GETTING THE SUITE
=================
To obtain the suite, simply run:

    git clone git://github.com/acangiano/ruby-benchmark-suite.git

RUNNING THE SUITE
=================
Benchmarks are run using rake. Type "rake -T bench" to see options.

Examples:

  rake bench
  rake bench:file FILE=benchmarks/micro-benchmarks/bm_app_tak.rb
  rake bench:dir DIR=benchmarks/micro-benchmarks
  rake bench:to_csv

The results are generated within the results/ folder (automatically created for you). Running rake bench:to_csv creates 
a CSV spreadsheet out of them. This is quite handy for comparing your results over time.

The following example runs demonstrates all possible options -- '/bin/ruby_special' as the VM, 3 iterations instead of 
the default (i.e., 5), 5 second timeout (per script) instead of the default 300s, and outputs all messages instead of 
swallowing them (the default).  METER_MEMORY defaults to yes, change it to anything else to disable it (it requires 
slightly extra processing).

  rake VM=/bin/ruby_special ITERATIONS=3 TIMEOUT=5 VERBOSE=1 METER_MEMORY=yes

DIRECTORY STRUCTURE
===================
  deprecated     - contains the old, deprecated version of the suite and recently deprecated tests
  benchmarks     - contains the benchmarks themselves
  utils          - contains the infrastructure necessary to run the benchmarks

See utils/README for more details.
    
Additional output formatters are welcome. For example, a :to_wiki would be very convenient to place the results directly 
in Confluence or similar Wiki software.

NOTES
=====
If you want to run a different implementation set the environment variable VM to point to a ruby executable or change 
this line in rakelib/bench.rake:

  VM = ENV['VM'] || "ruby"

HELP
=====
There is a mailing list at http://groups.google.com/group/ruby-benchmark-suite