ruby-1.9.3-p448 cumulative performance patch for rbenv
This installs a patched ruby 1.9.3-p448 with the railsexpress patchsets: https://github.com/skaes/rvm-patchsets
You will also need a C Compiler. If you're on Linux, you probably already have one or know how to install one. On OS X, you should install XCode, and
brew install autoconf using homebrew.
Ok, let's do this!
curl https://raw.github.com/gist/5891106/rbenv.sh | sh ; rbenv global 1.9.3-p448-railsexpress
Putting the following in your shell config (eg.
~/.zshrc) will make Rails even faster, but will increase its memory footprint. For most applications, this will probably work well for you:
export RUBY_GC_MALLOC_LIMIT=60000000 export RUBY_FREE_MIN=200000
If you have a particularly large rails app (say, >100k lines), this seems to improve it even more:
export RUBY_GC_MALLOC_LIMIT=1000000000 export RUBY_FREE_MIN=500000 export RUBY_HEAP_MIN_SLOTS=40000
If you're feeling adventurous, you can set some additional compile flags before you run the command above. These may cause the build to fail. If so, you can try again without the
march flag, and it'll probably work. This generally makes my ruby ~1.5% faster. See http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel for more guidance. I had to change it to
-march=nocona on my Macbook Pro 17" mid 2009".
export CFLAGS="-march=nocona -O3 -pipe -fomit-frame-pointer"
This has to be run BEFORE you compile ruby.
So, my personal command is:
export CFLAGS="-march=nocona -O3 -pipe -fomit-frame-pointer"; curl https://raw.github.com/gist/5891106/rbenv.sh | sh ; rbenv global 1.9.3-p448-railsexpress
Even MORE BONUS!
Users who have installed libreadline and openssl via homebrew will find these libraries linked automatically. No need to specify any CONFIGURE_OPTS!
Based on https://gist.github.com/4602764 work.