emrubyconf

40
Rubinius Rubinius Rubinius Rubinius Rubinius

Upload: brian-ford

Post on 15-May-2015

671 views

Category:

Technology


0 download

DESCRIPTION

Presentation about Rubinius at EMRubyConf during RailsConf11

TRANSCRIPT

Page 1: Emrubyconf

RubiniusRubiniusRubiniusRubiniusRubinius

Page 2: Emrubyconf
Page 3: Emrubyconf

+1

Page 5: Emrubyconf
Page 6: Emrubyconf

What isRubinius?

Page 7: Emrubyconf

core library standard lib

your application

Architecture

virtual machine

C-API

garbage collector

primitivesJIT

Page 8: Emrubyconf

bytecodevirtual machine

Page 9: Emrubyconf

Virtual Machine

Bytecode Interpreter

Garbage Collector

ThreadsIO

Primitive Operations

Method Dispatch

Constant Lookup

Page 10: Emrubyconf

generationalGC

Page 11: Emrubyconf

Large Object Space

Nursery

Young

Semi-Space

Mature

Immix

Generational GC

Page 12: Emrubyconf

just-in-timecompiler

Page 13: Emrubyconf

nativethreads

Page 14: Emrubyconf

nativefibers

Page 15: Emrubyconf

channels

Page 16: Emrubyconf

non-blockingIO

Page 17: Emrubyconf

Ruby

Page 18: Emrubyconf

threadsare

good

Page 19: Emrubyconf

VM

Page 20: Emrubyconf

Array::create(STATE, …)

Page 21: Emrubyconf

nativethreads

Page 22: Emrubyconf

GIL

Page 23: Emrubyconf

globalinterpreter

lock

Page 24: Emrubyconf

n.times { Thread.new { work() }}

Page 25: Emrubyconf
Page 26: Emrubyconf

there canbe only

one

Page 27: Emrubyconf

Ruby

Page 28: Emrubyconf

many

Page 29: Emrubyconf

~50

Page 30: Emrubyconf

Ruby

Page 31: Emrubyconf

GC

Page 32: Emrubyconf

slab

Page 33: Emrubyconf

state localallocation

buffer

Page 34: Emrubyconf

JIT

Page 35: Emrubyconf

non-blocking(mostly)

Page 36: Emrubyconf

Ruby

Page 37: Emrubyconf

a = []Thread.new { a << rand}Thread.new { a << rand}p a

Page 38: Emrubyconf

rvm install rbx-2.0pre

Page 39: Emrubyconf

gh:evanphx/rubinius

http://rubini.us@rubinius#rubinius

Page 40: Emrubyconf

Letʼs discuss...