Created — forked from burke/0-readme.md

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

ruby-1.9.3-p194 cumulative performance patch.

View 0-readme.md

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

OR

  • rvm

How do I do?

If you're using rbenv:

curl https://raw.github.com/gist/2600122/rbenv.sh | sh && rbenv global 1.9.3-p194-perf

If you're using rvm:

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

BONUS!

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_HEAP_SLOTS_INCREMENT=1000000
export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
export RUBY_GC_MALLOC_LIMIT=1000000000
export RUBY_HEAP_FREE_MIN=500000
View 0-readme.md
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
build_package_combined_patch() {
local package_name="$1"
 
{
curl https://raw.github.com/gist/2593385/perf_and_gc.diff | patch -p1
autoconf
./configure --prefix="$PREFIX_PATH" $CONFIGURE_OPTS
make -j 8
make install
} >&4 2>&1
 
}
 
require_gcc
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
install_package "ruby-1.9.3-p194" "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz" combined_patch
View 0-readme.md
1 2 3
VERSION="1.9.3-p194"
curl https://raw.github.com/gist/2600122/2-$VERSION-patched.sh > /tmp/$VERSION-perf
rbenv install /tmp/$VERSION-perf

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

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

Thanks!

Owner
sj26 commented

@cristianbico or install apple-gcc42 from homebrew.

my results are here: https://gist.github.com/3364771

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?

Without

hello world
14.35 real 11.72 user 1.66 sys

With

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.