JRuby startup costs [was: Process-level fork on OpenJDK...is it madness?]

2011-11-30 Thread Marrows, George A (GE Energy)
Hi Charlie - could you explain this a little more? > The bigger part of startup is loading all the third-party libraries > that a user might need in their app. Those sources need to be parsed > every time, turned into an AST, and partially executed to boot. All > the code that does parsing and int

Re: Coro patch

2011-11-30 Thread Lukas Stadler
On 2011-11-30 08:49, Charles Oliver Nutter wrote: > Seconds after I email...A DISCOVERY... > > It seems like invokedynamic is causing headaches for coro. Here's the > numbers with coro fibers and JRuby's invokedynamic support turned > *off*: > > 100 fibers / 1000 passes: 0.076000 0.00 0.0

Re: JRuby startup costs [was: Process-level fork on OpenJDK...is it madness?]

2011-11-30 Thread Charles Oliver Nutter
On Wed, Nov 30, 2011 at 3:36 AM, Marrows, George A (GE Energy) > Are you saying that >  ruby source on disk -> parse tree in memory -> bytecode in JVM > takes the same amount of time as >  bytecode on disk -> bytecode in JVM > ? If so, how do you think that is? Actually, since JRuby has an interpr

Re: Coro patch

2011-11-30 Thread Charles Oliver Nutter
On Wed, Nov 30, 2011 at 4:17 AM, Lukas Stadler wrote: > Hm, maybe... the fix was really just a tiny tiny bugfix, so that > shouldn't have caused any performance regressions, although, of course, > I can't say for sure. > But maybe something in invokedynamic has changed so that it's impacted > by c

Re: Coro patch

2011-11-30 Thread Lukas Stadler
On 2011-11-30 11:20, Charles Oliver Nutter wrote: > On Wed, Nov 30, 2011 at 4:17 AM, Lukas Stadler wrote: >> Hm, maybe... the fix was really just a tiny tiny bugfix, so that >> shouldn't have caused any performance regressions, although, of course, >> I can't say for sure. >> But maybe something i

Re: Process-level fork on OpenJDK...is it madness?

2011-11-30 Thread Rémi Forax
On 11/30/2011 12:10 AM, Jochen Theodorou wrote: > Am 29.11.2011 23:34, schrieb Thomas Wuerthinger: >> On 11/29/11 11:22 PM, Jochen Theodorou wrote: >>> Am 29.11.2011 22:32, schrieb Mark Roos: >>> [...] I just finished a paper (link below) on JVM startup time which states that for small pr

Re: Process-level fork on OpenJDK...is it madness?

2011-11-30 Thread Jochen Theodorou
Am 30.11.2011 14:02, schrieb Rémi Forax: [...] >>> What kind of initialization work is this? Could the result of that work >>> be cached? >> we have to setup the initial meta class system, which requires to use >> reflection to inspect some classes and other work. Yes, this could be >> cached, if w

Re: Coro patch

2011-11-30 Thread Mark Roos
Hi Charles Interesting results. Is your code for the coro implementation available somewhere to look at? thanks mark___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Re: JRuby invokedynamic updates for November

2011-11-30 Thread Stephen Bannasch
Hi Charlie, Is your latest work going on in the indy_update branch? I have a simple Ruby xml processing benchmark that compares several Ruby XML libraries including rexml which is part of the Ruby standard library. My test measures the time to do the following 100 times: - open 98k XML docume

Re: JRuby invokedynamic updates for November

2011-11-30 Thread Charles Oliver Nutter
On Wed, Nov 30, 2011 at 2:03 PM, Stephen Bannasch wrote: > Hi Charlie, > > Is your latest work going on in the indy_update branch? No, that's old stuff. I should wipe it out. I can explain your perf issue below, though. > I have a simple Ruby xml processing benchmark that compares several Ruby X

Re: JRuby invokedynamic updates for November

2011-11-30 Thread Charles Oliver Nutter
I should add that if you're running this against a u2ish build and seeing poor performance, we need to talk. I'm not seeing that locally, and you shouldn't see it either. - Charlie On Wed, Nov 30, 2011 at 2:42 PM, Charles Oliver Nutter wrote: > On Wed, Nov 30, 2011 at 2:03 PM, Stephen Bannasch >

Re: Coro patch

2011-11-30 Thread Charles Oliver Nutter
On Wed, Nov 30, 2011 at 11:57 AM, Mark Roos wrote: > Hi Charles > > Interesting results.  Is your code for the coro implementation available > somewhere > to look at? On master and jruby-1_6 branch, under src/org/jruby/ext/fiber/CoroutineFiber.java. It's Lukas's code, mostly. https://github.com/

Re: JRuby invokedynamic updates for November

2011-11-30 Thread Stephen Bannasch
At 2:43 PM -0600 11/30/11, Charles Oliver Nutter wrote: >I should add that if you're running this against a u2ish build and >seeing poor performance, we need to talk. I'm not seeing that locally, >and you shouldn't see it either. Here's what I am testing with: Java 1.6.0_27 and macosx-port and mlv

Re: JRuby invokedynamic updates for November

2011-11-30 Thread Charles Oliver Nutter
On Wed, Nov 30, 2011 at 3:27 PM, Stephen Bannasch wrote: >                              user     system      total        real >  rexml                  73.54   0.00  73.54 ( 73.54) >  hpricot                 6.483000  0.00   6.483000 (  6.483000) >  jdom_document_builder   0.2

Re: Process-level fork on OpenJDK...is it madness?

2011-11-30 Thread Rémi Forax
On 11/30/2011 04:28 PM, Jochen Theodorou wrote: > Am 30.11.2011 14:02, schrieb Rémi Forax: > [...] What kind of initialization work is this? Could the result of that work be cached? >>> we have to setup the initial meta class system, which requires to use >>> reflection to inspect some cl

Re: JRuby invokedynamic updates for November

2011-11-30 Thread Charles Oliver Nutter
I may have found one big problem, using some rexml benchmarks I found. The instance-variable logic I just added seems like it might not be working right. It was supposed to be experimental and turned off, but I used the wrong flag. Invokedynamic disabled (-Xcompile.invokedynamic=false) Parsing sm

Re: JRuby invokedynamic updates for November

2011-11-30 Thread Stephen Bannasch
At 5:25 PM -0600 11/30/11, Charles Oliver Nutter wrote: >On Wed, Nov 30, 2011 at 3:27 PM, Stephen Bannasch > wrote: >> user system totalreal >> rexml 73.54 0.00 73.54 ( 73.54) >> hpricot 6.483000 0.