From: Carter Cheng Date: 2011-10-27T13:56:53+09:00 Subject: [ruby-core:40438] Re: JIT development for MRI --90e6ba539feece8eef04b04099c4 Content-Type: text/plain; charset=ISO-8859-1 Thanks Charles. I am still somewhat curious about this- I did look at the link for jruby you sent me but I am not sure how JRuby is exploiting the JVM framework. Do you have specific JVM's that you feel may be interesting to study? Are most of these OSS in some form or another nowadays? I am curious where you do draw the line between the academic theoretical and practical (since many pieces showing up in places like PLDI are descriptions of actual projects- like Mozilla SpiderMonkey). Regards, Carter. On Thu, Oct 27, 2011 at 3:27 PM, Charles Oliver Nutter wrote: > On Wed, Oct 26, 2011 at 6:43 PM, Carter Cheng > wrote: > > I guess when it comes to Ruby my sense is that the dynamism poses some > > complex problems for development of a good JIT system. I know that > Macruby > > relies on the LLVM JIT system and this simplifies much of the coding.- > > however the LLVM JIT system is rather heavyweight. There was some paper > > describing for example the effect of substituting (not in much detail) > tcg > > in QEMU using the LLVM system and the performance was significantly > impeded. > > You may find more interesting practical (rather than > academic/theoretical) JIT work by looking at what mainstream JVMs do > (and by extension, how JRuby gets much of its performance) and what > Rubinius does (code generation using LLVM, but using runtime profiling > to perform method inlining...much like the JVM). MacRuby is a great > piece of work, but as far as I know it does not do any runtime > optimization; the use of LLVM is just for direct translation to native > code, which as I mentioned previously only gets you a modest > performance boost. > > - Charlie > > --90e6ba539feece8eef04b04099c4 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Thanks Charles. I am still somewhat curious about this- I did look at the l= ink for jruby you sent me but I am not sure how JRuby is exploiting the JVM= framework. Do you have specific JVM's that you feel may be interesting= to study? Are most of these OSS in some form or another nowadays? I am cur= ious where you do draw the line between the academic theoretical and practi= cal (since many pieces showing up in places like PLDI are descriptions of a= ctual projects- like Mozilla SpiderMonkey).

Regards,

Carter.

<= br>
On Thu, Oct 27, 2011 at 3:27 PM, Charles Oliv= er Nutter <head= ius@headius.com> wrote:
On Wed, Oct 26, 2011 at 6= :43 PM, Carter Cheng <carterche= ng@gmail.com> wrote:
> I guess when it comes to Ruby my sense is that the dynamism poses some=
> complex problems for development of a good JIT system. I know that Mac= ruby
> relies on the LLVM JIT system and this simplifies much of the coding.-=
> however the LLVM JIT system is rather heavyweight. There was some pape= r
> describing for example the effect of substituting (not in much detail)= tcg
> in QEMU using the LLVM system and the performance was significantly im= peded.

You may find more interesting practical (rather than
academic/theoretical) JIT work by looking at what mainstream JVMs do
(and by extension, how JRuby gets much of its performance) and what
Rubinius does (code generation using LLVM, but using runtime profiling
to perform method inlining...much like the JVM). MacRuby is a great
piece of work, but as far as I know it does not do any runtime
optimization; the use of LLVM is just for direct translation to native
code, which as I mentioned previously only gets you a modest
performance boost.

- Charlie


--90e6ba539feece8eef04b04099c4--