Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A live status viewer for Rubinius
Ruby JavaScript
Branch: master
Pull request Compare This branch is 1 commit ahead, 8 commits behind evanphx:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app
config
db
doc
lib
public
script
test
vendor/plugins
.gitignore
.rvmrc
Gemfile
README.markdown
Rakefile
config.ru

README.markdown

Gauge, A live status viewer for Rubinius

Gauge is a non-database backed Rails 3.0 application that reads a heap dump from the Rubinius VM and then displays the heap dump in a manner which allows you to interact with the heap snapshot.

Creating a Heap Dump

Following the instructions from the "Memory Analysis" section of the Rubinius documentation (http://rubini.us/doc/en/tools/memory-analysis/), prepare a dump file. Here is a brief overview of the process. From the docs:

Rubinius provides access to the VM via an agent interface. The agent opens a network socket and responds to commands issued by the console program. The agent must be started with the program.

rbx -Xagent.start <script name>

Connect to the agent using the rbx console. This program opens an interactive session with the agent running inside the VM. Commands are issued to the agent. In this case we are saving a heap dump for offline analysis.

$ rbx console
VM: rbx -Xagent.start leak.rb tcp://127.0.0.1:5549 1024 100000000
Connecting to VM on port 60544
Connected to localhost:60544, host type: x86_64-apple-darwin10.5.0
console> set system.memory.dump heap.dump
console> exit

The command is set system.memory.dump . The heap dump file is written to the current working directory for the program running the agent.

Configuring Gauge

Set the ENV['DUMP'] environment variable in config/environment.rb, pointing to a heap dump file you want to analyze.

Run the Gauge app with:

rails server

and you will be greeted with a menu. Enjoy!

Screenshot

Screenshot

Details

Most recently tested with:

rubinius 2.0.0dev (1.8.7 96146df9 yyyy-mm-dd JI) [x86_64-apple-darwin10.7.3]
Something went wrong with that request. Please try again.