The only efficient way to make the most of something is understanding it's mechanics - a pilot has deep knowledge of many scientific factors and its effects on a plane. Why do so many developers fly blind?
We'll take a peek into the Ruby 1.9 VM's internals with DTrace and observe the effect of some core components on memory, IO and CPU subsystems. No prior knowledge of Virtual Machines/Interpreters is assumed.
Interpreter specific subjects touched upon:
* Source to runtime : Loading files, parsing to Nodes and eval
* VM : Symbol table, method cache, frames, method dispatch and optimizations
* Object model : Core types, Modules and variables
* Closures : Blocks and procedures
* POSIX, IO and Contexts : Signals, system calls and Thread / Fiber switches
* Garbage Collection : Heap space, alloc / dealloc and GC patterns