Trace-trees and the ruby intepreter

I just saw a recent article on ArsTechnica
(Firefox to get massive JavaScript performance boost | Ars Technica)
which discussed using trace optimization (http://andreasgal.com/) to
boost the performance of JavaScript.

My initial reaction was that this seems like it would also work very
well for ruby.

Personally I’m not familiar with the ruby interpreter so maybe this sort
of this wouldn’t help at all. But after reviewing some of the notes in
tracing it looks promising.

Does anyone here with more knowledge than me have any comment on this?

Best,
John

On Aug 22, 4:47 pm, John L. [email protected] wrote:

I just saw a recent article on ArsTechnica
(Firefox to get massive JavaScript performance boost | Ars Technica…)
which discussed using trace optimization (http://andreasgal.com/) to
boost the performance of JavaScript.

My initial reaction was that this seems like it would also work very
well for ruby.

That was my reaction too. It makes me wonder what kind of
optimizations are in Maglev.

I found a better article this morning giving more details on how trace
optmization works:

http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html

-Qaexl

John L. wrote:

I just saw a recent article on ArsTechnica
(Firefox to get massive JavaScript performance boost | Ars Technica)
which discussed using trace optimization (http://andreasgal.com/) to
boost the performance of JavaScript.

My initial reaction was that this seems like it would also work very
well for ruby.

I think JIT compilers for Ruby are pretty rare as of now. Maybe Jruby
has something that is JIT’y, but I’m not sure. There is the ‘ludicrous’
optimizer as well as ruby2c, but that’s all I know of, and they’re
pretty young.
Yarv uses some inline caching for method signatures but that’s about
where we stand.
Rubinius might be different.
Take care.

-=R

On Aug 23, 2008, at 11:26 , Qaexl wrote:

That was my reaction too. It makes me wonder what kind of
optimizations are in Maglev.

Mostly that they’re sitting on a very well engineered engine… The
technology there is very well exercised and would provide a very
stable platform for nearly any dynamic language.