On 7/27/06, Stefano Mazzocchi <[EMAIL PROTECTED]> wrote:

For server side software, the warm-up time is not a big deal, but for
client side software, it's a huge deal if Eclipse (or your, ehm, firefox
extension written in java <grin>) starts up in 0.5 seconds instead of 5.


AFAIK the Eclipse (or client-app) startup is affected by class
loading/verification mostly. The time percent of managed code execution or
compilation is low. SUN starts Eclipse very fast but it has interpreter!

To get the real numbers: run any PMU profiling tool: e.g. VTune, and check
the time distribution between different shared libraries. The time for
'jitrino' library is the time of compilation. The time of 'gc' library is GC
overhead. The time for 'vmcore' library is VM time that for Eclipse startup
is the time distributed between class loading/verification code and helper
method calls from managed (Java) code. The time for 'unknown' library is the
time of managed code execution.
If you can drill down into vmcore library time distribution I suppose the
most of the time will be spent on class loading/verification. Anyway you can
check it easily by yourself, because now I'm posting my thoughts but not the
facts :)

The another option is AOT (ahead of time compilation) and this technique is
used by GCJ. In this case all classes are compiled to native code before
program execution. This approach could be very useful in some scenarios and
I think its not too hard to prototype in drlvm if you are interested in such
kind of research.

--
Mikhail Fursov

Reply via email to