• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
RubyConf 2009
 

RubyConf 2009

on

  • 3,956 views

My presentation on Rubinius at RubyConf 2009.

My presentation on Rubinius at RubyConf 2009.

Statistics

Views

Total Views
3,956
Views on SlideShare
3,799
Embed Views
157

Actions

Likes
3
Downloads
29
Comments
0

3 Embeds 157

http://www.slideshare.net 137
http://verboselogging.com 10
http://localhost 10

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    RubyConf 2009 RubyConf 2009 Presentation Transcript

    • Rubinius The 4th Year Tuesday, November 24, 2009
    • Rubinius The 1st Senior Year Tuesday, November 24, 2009
    • 4th Year Tuesday, November 24, 2009
    • Year 1 Freshman Year 48 commits Tuesday, November 24, 2009
    • http://photos.dzki.co.uk/oak_sapling_warming_itself_in_the_morning_sun.jpg Tuesday, November 24, 2009
    • Year 1 A Toy Tuesday, November 24, 2009
    • Year 1 An Idea Tuesday, November 24, 2009
    • Year 2 Sophomore Year 2802 commits Tuesday, November 24, 2009
    • Year 3 Hubris Tuesday, November 24, 2009
    • Year 3 Hubris 1.0 anyone? Tuesday, November 24, 2009
    • Year 3 Junior Year 6172 commits Tuesday, November 24, 2009
    • Year 3 Compliance Tuesday, November 24, 2009
    • Year 3 Compliance RubySpec Tuesday, November 24, 2009
    • Year 3 Redirection Tuesday, November 24, 2009
    • Year 3 Redirection C++ Tuesday, November 24, 2009
    • Year 3 Plotting Tuesday, November 24, 2009
    • Year 4 1st Senior Year 2220 commits Tuesday, November 24, 2009
    • Year 4 JIT Tuesday, November 24, 2009
    • Year 4 JIT LLVM Tuesday, November 24, 2009
    • Year 4 JIT Hotspot Detection Tuesday, November 24, 2009
    • Year 4 JIT Type Profiling Tuesday, November 24, 2009
    • Year 4 JIT Method Inlining Tuesday, November 24, 2009
    • Year 4 FTW Block Inlining! Tuesday, November 24, 2009
    • Year 4 RubySpec Tuesday, November 24, 2009
    • Year 4 RubySpec 93% Pass Rate Tuesday, November 24, 2009
    • Year 4 RubySpec rake, rspec, rails Tuesday, November 24, 2009
    • Year 4 C Extensions Tuesday, November 24, 2009
    • Year 4 C Extensions syck, nokogiri, mysql, yajl-json Tuesday, November 24, 2009
    • Compliance + Performance Tuesday, November 24, 2009
    • Compliance 93+% RubySpec Tuesday, November 24, 2009
    • Compliance 93+% RubySpec Passing/untagging more everyday Tuesday, November 24, 2009
    • NotImplementedError Tuesday, November 24, 2009
    • NotImplementedError ObjectSpace Tuesday, November 24, 2009
    • NotImplementedError ObjectSpace _id2ref Tuesday, November 24, 2009
    • NotImplementedError ObjectSpace each_object (limited) Tuesday, November 24, 2009
    • NotImplementedError callcc Tuesday, November 24, 2009
    • NotImplementedError callcc Yet. Tuesday, November 24, 2009
    • Compliance C-API Tuesday, November 24, 2009
    • Compliance C-API syck, nokogiri, etc. Tuesday, November 24, 2009
    • Compliance C-API A few gotchas... Tuesday, November 24, 2009
    • C Extension Do’s and Don’ts Tuesday, November 24, 2009
    • Do prefer a function over an R*() macro Tuesday, November 24, 2009
    • Rubinius RBASIC(obj)->class rb_obj_class(obj) Tuesday, November 24, 2009
    • 1.9 / Rubinius ROBJECT(obj)->iv_tbl rb_ivar_[get|set](obj, ...) Tuesday, November 24, 2009
    • 1.9 / Rubinius Don’t use the “re.h” header Tuesday, November 24, 2009
    • 1.9 / Rubinius Don’t use the “env.h” header ruby_frame ruby_dyna_vars ruby_scope ruby_in_eval ruby_class Tuesday, November 24, 2009
    • Try your gem Tuesday, November 24, 2009
    • Report your problems! Tuesday, November 24, 2009
    • http://github.com/ evanphx/rubinius/ issues Tuesday, November 24, 2009
    • Performance Tuesday, November 24, 2009
    • Performance The Two Fronts Tuesday, November 24, 2009
    • Performance Why We Fight What We Write Tuesday, November 24, 2009
    • (0..10).to_a.each do |i| ary << i end Tuesday, November 24, 2009
    • 0.upto(10) do |i| ary << i end Tuesday, November 24, 2009
    • Performance The Two Fronts How We Run It Tuesday, November 24, 2009
    • Performance Benchmarking Tuesday, November 24, 2009
    • Performance Benchmarking Expectations vs. Reality Tuesday, November 24, 2009
    • Performance Benchmarking Lies, Damned Lies, and Statistics Tuesday, November 24, 2009
    • Benchmarks Tuesday, November 24, 2009
    • 114 Times faster than 1.8 100 86 71 57 43 29 14 0 ruby 1.9 jruby macruby rubinius Tuesday, November 24, 2009
    • 57 Times faster than 1.8 50 43 36 29 21 14 7 0 ruby 1.9 jruby macruby rubinius Tuesday, November 24, 2009
    • impl 1.8 1.9 jruby macruby rbx ms 309304 51113 113824 70580 24232 x faster 1.0 6.0 2.7 4.3 12.7 Tuesday, November 24, 2009
    • Benchmarks 12x faster! Tuesday, November 24, 2009
    • Benchmarks 12x faster! On these benchmarks! Tuesday, November 24, 2009
    • Benchmarks 12x faster! In general? Tuesday, November 24, 2009
    • Benchmarks What did we benchmark? Tuesday, November 24, 2009
    • Calling a method. Empty while loop. Creating a block. Accessing ivars. Performing ‘not’. Calling a polymorphic method. Calling super. Tuesday, November 24, 2009
    • Benchmarks Why these things? Tuesday, November 24, 2009
    • Benchmarks Why these things? How do these results translate? Tuesday, November 24, 2009
    • Analogy Tuesday, November 24, 2009
    • Dishonest? Tuesday, November 24, 2009
    • Rubinius Ruby performance begets core performance Tuesday, November 24, 2009
    • 1.8 Ruby performance begets ? Tuesday, November 24, 2009
    • Benchmarks Need more/better data Tuesday, November 24, 2009
    • def foo() ary = [] 100.times { |i| ary << i } end 300,000 times Tuesday, November 24, 2009
    • Seconds 8 7.82 6 4 4.24 3.91 3.26 2.60 2 0 1.8 1.9 macruby jruby rbx Tuesday, November 24, 2009
    • def foo() hsh = {} 100.times { |i| hsh[i] = 0 } end 100,000 times Tuesday, November 24, 2009
    • Seconds 11 10.5 8.25 7.62 5.5 4.77 4.7 2.75 1.67 0 1.8 1.9 macruby jruby rbx Tuesday, November 24, 2009
    • def foo() hsh = { 47 => true } 100.times { |i| hsh[i] } end 100,000 times Tuesday, November 24, 2009
    • Seconds 4 3.64 3 2.61 2.6 2 2.12 1.75 1 0 1.8 1.9 macruby jruby rbx Tuesday, November 24, 2009
    • Benchmarking Conclusion Tuesday, November 24, 2009
    • Benchmarking Conclusion Rubinius is awesome at ruby code Tuesday, November 24, 2009
    • Benchmarking Conclusion Comparing C/Java to Ruby Tuesday, November 24, 2009
    • More Ruby Tuesday, November 24, 2009
    • More Ruby Burden of our own devising Tuesday, November 24, 2009
    • More Ruby Fast compliance Tuesday, November 24, 2009
    • More Ruby Slower core performance Tuesday, November 24, 2009
    • More Ruby Slower core performance Ruby vs. C/Java Tuesday, November 24, 2009
    • More Ruby The upside... Tuesday, November 24, 2009
    • 114 Times faster than 1.8 100 86 71 57 43 29 14 0 ruby 1.9 jruby macruby rubinius Tuesday, November 24, 2009
    • 114 Times faster than 1.8 100 86 71 57 43 29 14 0 ruby 1.9 jruby macruby rubinius Tuesday, November 24, 2009
    • def m; nil; end def Bench.run i=0 while i < 15_000_000 i+=1 m; m; m; m; m; m; m; m end end Tuesday, November 24, 2009
    • impl 1.8 1.9 jruby macruby rbx ms 21361 6316 10101 3295 186 x faster 1.0 3.4 2.1 6.5 114.8 Tuesday, November 24, 2009
    • impl 1.8 1.9 jruby macruby rbx ms 21361 6316 10101 3295 186 x faster 1.0 3.4 2.1 6.5 114.8 Tuesday, November 24, 2009
    • impl 1.8 1.9 jruby macruby rbx ms 21361 6316 10101 3295 186 x faster 1.0 3.4 2.1 6.5 114.8 Tuesday, November 24, 2009
    • impl 1.8 1.9 jruby macruby rbx ms 21361 6316 10101 3295 186 x faster 1.0 3.4 2.1 114.8 6.5 Tuesday, November 24, 2009
    • impl 1.8 1.9 jruby macruby rbx ms 21361 6316 10101 3295 186 x faster 1.0 3.4 114.8 2.1 6.5 Tuesday, November 24, 2009
    • impl 1.8 1.9 jruby macruby rbx 114.8 ms 21361 6316 10101 3295 186 x faster 1.0 3.4 2.1 6.5 Tuesday, November 24, 2009
    • Bug Tuesday, November 24, 2009
    • Bug right? Tuesday, November 24, 2009
    • Bug Tuesday, November 24, 2009
    • def m; nil; end def Bench.run i=0 while i < 15_000_000 i+=1 m; m; m; m; m; m; m; m end end Tuesday, November 24, 2009
    • Year 4 JIT Method Inlining Tuesday, November 24, 2009
    • def m; nil; end def Bench.run i=0 while i < 15_000_000 i+=1 m; m; m; m; m; m; m; m end end Tuesday, November 24, 2009
    • bin/rbx -Xjit.inline.debug 0/bm_vm2_method.rb Tuesday, November 24, 2009
    • JIT: compiling Object#run inlining: primitive fixnum_lt into run. inlining: Object#m into run (<metaclass>) inlining: Object#m into run (<metaclass>) inlining: Object#m into run (<metaclass>) inlining: Object#m into run (<metaclass>) inlining: Object#m into run (<metaclass>) inlining: Object#m into run (<metaclass>) inlining: Object#m into run (<metaclass>) inlining: Object#m into run (<metaclass>) Tuesday, November 24, 2009
    • def m; nil; end def Bench.run i=0 while i < 15_000_000 i+=1 nil;nil;nil;nil;nil;nil;nil;nil end end Tuesday, November 24, 2009
    • def m; nil; end def Bench.run i=0 while i < 15_000_000 i+=1 end end Tuesday, November 24, 2009
    • Performance Tuesday, November 24, 2009
    • Performance Many programs, much faster Tuesday, November 24, 2009
    • Performance Many programs, a little slower Tuesday, November 24, 2009
    • Performance Some programs, a lot slower Tuesday, November 24, 2009
    • Releases Tuesday, November 24, 2009
    • Releases 0.13 Tuesday, November 24, 2009
    • Releases 0.13 JIT by default Tuesday, November 24, 2009
    • Releases 0.13 Lots of fixes Tuesday, November 24, 2009
    • 1.0rc1 Tuesday, November 24, 2009
    • Next Week! Tuesday, November 24, 2009
    • Expectations Tuesday, November 24, 2009
    • Expectations Runs rails 3 Tuesday, November 24, 2009
    • Expectations Performance improvements Tuesday, November 24, 2009
    • Expectations One RC every month Tuesday, November 24, 2009
    • Expectations One RC every month Until 1.0 is out. Tuesday, November 24, 2009