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's currently building out Forex/sell side infrastructure in Ruby. He has written several Ruby extensions and is also a founding member of the Scrooge DB optimization layer. (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 AntunesBruno Antunes Bruno FrancoBruno Franco Bruno MorissonBruno Morisson Caio ProieteCaio Proiete Carla Vanessa Ferreira Alves LeiteCarla Vanessa Ferreira Alves Leite Carlos MoutinhoCarlos Moutinho Célia LeocádioCélia Leocádio Cláudio ValenteCláudio Valente Daniel ParreiraDaniel Parreira David JúlioDavid Júlio David SerranoDavid Serrano David Walter Figueira JardimDavid Walter Figueira Jardim Filipe Adriano Lima DiasFilipe Adriano Lima Dias Filipe Manuel Castro CorreiaFilipe Manuel Castro Correia Flávio CruzFlávio Cruz Francisco Alves CabritaFrancisco Alves Cabrita Gil AbrantesGil Abrantes Gonçalo S. SilvaGonçalo S. Silva Hugo MonteiroHugo Monteiro Joao AzevedoJoao Azevedo João BordaloJoão Bordalo João Duarte GomesJoão Duarte Gomes João NelasJoão Nelas Matusalem MarquesMatusalem Marques Miguel NogueiraMiguel Nogueira Miguel PaisMiguel Pais Miguel RegedorMiguel Regedor Paulo CorreiaPaulo Correia Pedro DiogoPedro Diogo Pedro DuartePedro Duarte Pedro GomesPedro Gomes pedro mgpedro mg Pedro TeixeiraPedro Teixeira Pedro TrindadePedro Trindade Renato LourençoRenato Lourenço Ricardo FerreiraRicardo Ferreira Rogério VicenteRogério Vicente Ruben MarquesRuben Marques Rui LopesRui Lopes Rui Miguel Miranda RamosRui Miguel Miranda Ramos Sergio FreireSergio Freire Sérgio SantosSérgio Santos Simao FreitasSimao Freitas Tiago MendoTiago Mendo Tiago PintoTiago Pinto Tomás SenartTomás Senart Tomé DuarteTomé Duarte


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

Attendance