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
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