emrubyconf
DESCRIPTION
Presentation about Rubinius at EMRubyConf during RailsConf11TRANSCRIPT
![Page 1: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/1.jpg)
RubiniusRubiniusRubiniusRubiniusRubinius
![Page 2: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/2.jpg)
![Page 3: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/3.jpg)
+1
![Page 4: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/4.jpg)
http://www.flickr.com/photos/sukaina/3506948906/
![Page 5: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/5.jpg)
![Page 6: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/6.jpg)
What isRubinius?
![Page 7: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/7.jpg)
core library standard lib
your application
Architecture
virtual machine
C-API
garbage collector
primitivesJIT
![Page 8: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/8.jpg)
bytecodevirtual machine
![Page 9: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/9.jpg)
Virtual Machine
Bytecode Interpreter
Garbage Collector
ThreadsIO
Primitive Operations
Method Dispatch
Constant Lookup
![Page 10: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/10.jpg)
generationalGC
![Page 11: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/11.jpg)
Large Object Space
Nursery
Young
Semi-Space
Mature
Immix
Generational GC
![Page 12: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/12.jpg)
just-in-timecompiler
![Page 13: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/13.jpg)
nativethreads
![Page 14: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/14.jpg)
nativefibers
![Page 15: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/15.jpg)
channels
![Page 16: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/16.jpg)
non-blockingIO
![Page 17: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/17.jpg)
Ruby
![Page 18: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/18.jpg)
threadsare
good
![Page 19: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/19.jpg)
VM
![Page 20: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/20.jpg)
Array::create(STATE, …)
![Page 21: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/21.jpg)
nativethreads
![Page 22: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/22.jpg)
GIL
![Page 23: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/23.jpg)
globalinterpreter
lock
![Page 24: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/24.jpg)
n.times { Thread.new { work() }}
![Page 25: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/25.jpg)
![Page 26: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/26.jpg)
there canbe only
one
![Page 27: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/27.jpg)
Ruby
![Page 28: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/28.jpg)
many
![Page 29: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/29.jpg)
~50
![Page 30: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/30.jpg)
Ruby
![Page 31: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/31.jpg)
GC
![Page 32: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/32.jpg)
slab
![Page 33: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/33.jpg)
state localallocation
buffer
![Page 34: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/34.jpg)
JIT
![Page 35: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/35.jpg)
non-blocking(mostly)
![Page 36: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/36.jpg)
Ruby
![Page 37: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/37.jpg)
a = []Thread.new { a << rand}Thread.new { a << rand}p a
![Page 38: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/38.jpg)
rvm install rbx-2.0pre
![Page 40: Emrubyconf](https://reader033.vdocuments.site/reader033/viewer/2022060109/5555ab1cd8b42afe5d8b4768/html5/thumbnails/40.jpg)
Letʼs discuss...