On Tue, Nov 9, 2010 at 9:09 AM, Rémi Forax <[email protected]> wrote:
> Do you try profile the rails apps + your runtime ?

Yes, but unfortunately profiling either introduces so much overhead it
masks the actual startup time...and profiling isn't particularly good
at startup anyway.

As far as JRuby's concerned, much of the time taken during startup of
a large app is simply parsing and executing all those Ruby scripts.
Our parser is definitely not a simple piece of code, and there's a lot
happening as an application boots. We've knocked down a few obvious
bottlenecks, but our startup time is at *best* an order of magnitude
slower than C Ruby for any given app. On server, it's more like two
orders of magnitude.

Most of my experiments have pointed toward the lack of quick jitting
and the cost of jitting once it happens as the primary costs running
on the server VM. That's largely why reducing compilation threshold
and disabling inlining improves that startup time.

> Tiered compilation doesn't use the CompileThreshold flag but its own set of
> flags:
> see
> http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2010-November/004239.html

Yes, I saw that thread. I haven't tried tuning the other thresholds
yet, but that may be the next attempt. However, since I need options
for real users on Java 6, I'd still like to hear if there's other
server-tuning flags that can make compiles come more quickly and with
less overhead. I will keep poking at it.

- Charlie

-- 
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en.

Reply via email to