Skip to content
Create a gist now

Instantly share code, notes, and snippets.

ruby-1.9.3-p194 cumulative performance patch.

Patched ruby 1.9.3-p194 for 30% faster rails boot

What is?

This script installs a patched version of ruby 1.9.3-p194 with patches for boot-time performance improvements (#66 and #68), and runtime performance improvements (#83 and #84). It also includes the new backported GC from ruby-trunk.

Huge thanks to funny-falcon for the performance patches.

What I need?

  • rbenv
  • ruby-build


  • rvm

How do I do?

If you're using rbenv:

curl | sh && rbenv global 1.9.3-p194-perf

If you're using rvm:

rvm get head && rvm reinstall 1.9.3-perf --patch falcon


Putting the following in your shell config (eg. ~/.bash_profile) will make Rails even faster, but will increase its memory footprint:

export RUBY_HEAP_MIN_SLOTS=1000000
export RUBY_GC_MALLOC_LIMIT=1000000000
export RUBY_HEAP_FREE_MIN=500000
build_package_combined_patch() {
local package_name="$1"
curl | patch -p1
./configure --prefix="$PREFIX_PATH" $CONFIGURE_OPTS
make -j 8
make install
} >&4 2>&1
install_package "yaml-0.1.4" ""
install_package "ruby-1.9.3-p194" "" combined_patch
curl$ > /tmp/$VERSION-perf
rbenv install /tmp/$VERSION-perf

On Mac OS X Mountain Lion you'll have to remove the require_gcc to work

woahdae commented Jul 31, 2012

Install went smoothly, but surprisingly 1.9.3-p194-perf loads rails a little less than a second slower than my falcon-patched 1.9.3-p0...


#without perf
[10:36] time rails runner "puts 'hello world'"
hello world

real 0m7.699s
user 0m3.910s
sys 0m1.243s

#with perf
[10:37] time rails runner "puts 'hello world'"
hello world

real 0m3.347s
user 0m2.441s
sys 0m0.893s


sj26 commented Aug 2, 2012

@cristianbico or install apple-gcc42 from homebrew.


my results are here:

massive diff


On rvm, this is slower than the un-patched rubies for me (OSX 10.8.2) -- rails boots ~25% slower. What am I doing wrong?



hello world
14.35 real 11.72 user 1.66 sys


hello world
11.31 real 9.58 user 1.27 sys

So, 3 seconds off a 14-second startup. Probably not going to push this to production or anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.