Session Title

Dynamic Language VMs: Inside Ruby

Abstract

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

These are in no way a complete subset of a functional VM, but appropriate for the time slot of this presentation. If time allows I'll touch upon a dreamy evented interpreter design from a coworker, based on the Event Sourcing pattern, and how such a design yields a decoupled and pluggable interpreter.

Language

English

Speakers

Lourens Naudé

Lourens is an independent Consultant currently based in sunny Madeira Island, but originally from South Africa. With a twisted (and mostly non-academic) view on automated behavior based performance optimizations and deep service integration experience.He specializes in backend / platform / domain solutions and is well versed full stack, from VM to high level protocols and known for his offbeat Ruby patches and extensions. He spends weekdays in the Platform team @ http://www.wildfireapp.com See http://github.com/methodmissing for Open Source contributions. (more)


Where

Main Stage

When

Friday, 4 of December of 2009, from 11:00 to 12:00

Files and video

Video

Slideshare

Attendees

André CruzAndré Cruz André dos Santos CardosoAndré dos Santos Cardoso Andre GonçalvesAndre Gonçalves Bruno FrancoBruno Franco Bruno MorissonBruno Morisson Caio ProieteCaio Proiete Carla Vanessa F. A. LeiteCarla Vanessa F. A. Leite Carlos MoutinhoCarlos Moutinho Célia LeocádioCélia Leocádio Cláudio ValenteCláudio Valente David JúlioDavid Júlio David SerranoDavid Serrano David Walter Figueira JardimDavid Walter Figueira Jardim Filipe Adriano Lima DiasFilipe Adriano Lima Dias Francisco Alves CabritaFrancisco Alves Cabrita Gil AbrantesGil Abrantes Gonçalo S. SilvaGonçalo S. Silva Joao AzevedoJoao Azevedo João NelasJoão Nelas Matusalem MarquesMatusalem Marques Miguel NogueiraMiguel Nogueira Miguel PaisMiguel Pais Miguel RegedorMiguel Regedor Paulo CorreiaPaulo Correia Pedro DiogoPedro Diogo Pedro GomesPedro Gomes pedro mgpedro mg Pedro TeixeiraPedro Teixeira Renato LourençoRenato Lourenço Ricardo FerreiraRicardo Ferreira Rogério VicenteRogério Vicente Ruben MarquesRuben Marques Rui LopesRui Lopes Sergio FreireSergio Freire Sérgio SantosSérgio Santos Tiago MendoTiago Mendo Tiago PintoTiago Pinto Tomás SenartTomás Senart Tomé DuarteTomé Duarte


Estimated head count: 67 people
(based on the total of persons interested in this talk and the universe of people attending Codebits)




Information

Past editions

Social