On Wed, Nov 12, 2008 at 10:52 AM, Wenlong Li <[EMAIL PROTECTED]> wrote: > In my understanding (also from some related work[1]), the startup > means the work before executing user's code in main(). So for startup > optimization, we may think how to reduce the VM creation time, etc. I'm afraid that definition of startup time as "time to get VM initialized and ready to execute user code" is loose and does not reflect the real impression of startup performance end user wants to have. I presume that user wants to minimize the time it gets for code to make some work completed: from the moment (s)he invokes JVM to the moment JVM outputs the value. That's why SPECjvm2008:startup is actually does *one* iteration of each of the benchmark -- just to catch up what's the time for VM to initialize, get the user code, *execute it* and produce some meaningful result.
And so, before actually diving into startup optimizations, it's better to have the clue what's consuming the time on SPECjvm2008:startup: "VM init takes X usecs", "classloading takes Y usecs, "JET compilation takes Z secs", "compiled code takes XX usecs", etc. I had occasionally prepared that data 1.5 years ago, so we need to do some fresh start. On the class sharing: I'm not sure if it helps in single VM scenario, it's more like reducing the time of classloading when neighbor already done all the work. Alexey Fedotov have much more expertise on that, anyway :) Thanks, Aleksey.
