Giter Club home page Giter Club logo

ruby-benchmark-suite's Introduction

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 (a copy for convenience is located at benchmarks/rails/dependencies/rake-0.8.7.gem). 

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

if you get "SystemStackError stack level too deep" error as results of some benchmarks, try to increase a stack size:

  ulimit -s 16384

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"

or pass in environment variable on the command line

  rake VM=/path/to/ruby bench

RAILS TESTS
===========

There are a few rails 2.3.x tests located in the benchmarks/rails folder. You may need to install a binary dependency to run them, see benchmarks/rails/README_HOW_TO_RUN_THE_RAILS_TESTS file for instructions for your VM.

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

ruby-benchmark-suite's People

Contributors

acangiano avatar agrimm avatar githubsvnclone avatar jredville avatar plashchynski avatar rafaellima avatar rdp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ruby-benchmark-suite's Issues

rails tests die if they are too fast

name: rbs/macro-benchmarks/rails/bm_substruct_request_root_same_session_30x.rb
parameter:
status: "FloatDomainError Infinity"

means "rails didn't account for you running the warm up round that fast"

rails tests fail with 1.9.2

C:\dev\ruby\ruby-benchmark-suite>cat results/rbs/RBS-ruby-091010.214111.yaml

name: benchmarks/rails/bm_substruct_request_root_same_session_30x.rb
parameter:
status: "LoadError no such file to load -- substruct_start_and_bootstrap_if_necessary.rb"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.