Skip to content

Instantly share code, notes, and snippets.

@mig
Forked from burke/0-readme.md
Last active Dec 17, 2015
Embed
What would you like to do?

Ruby 1.9.3-p194 with DTrace probes, Perf Patches, and backported COW-friendly GC

Overview

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

Many thanks to funny-falcon for the performance patches and to Aaron Patterson for the DTrace instrumentation.

Requirements

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/3808235/rbenv.sh | sh ; rbenv global 1.9.3-p194-dtrace

Warning: ruby*::vm_exec_core:function-* seem to be broken, causing SystemStackErrors in the ruby process you instrument.

build_package_combined_patch() {
local package_name="$1"
{
autoconf
./configure --prefix="$PREFIX_PATH" $CONFIGURE_OPTS
make probes.h
make -j 8
make install
} >&4 2>&1
}
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
# You can see the source for this package at https://github.com/burke/ruby/commits/work
install_package "build" "http://cloud.github.com/downloads/burke/ruby/ruby-1.9.3-p194-perf-dtrace.tar.gz" combined_patch
VERSION="1.9.3-p194"
curl https://raw.github.com/gist/3808235/2-$VERSION-patched.sh > /tmp/$VERSION-dtrace
rbenv install /tmp/$VERSION-dtrace
@arnab
Copy link

arnab commented May 30, 2013

This fails for me:

Downloading ruby-1.9.3-p194-perf-dtrace.tar.gz...
-> http://cloud.github.com/downloads/burke/ruby/ruby-1.9.3-p194-perf-dtrace.tar.gz
/usr/local/opt/rbenv/plugins/ruby-build/bin/ruby-build: line 140: pushd: ruby-1.9.3-p194-perf-dtrace: No such file or directory

BUILD FAILED

Also noted in https://gist.github.com/burke/3808235#comment-582494

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment