[armedbear-devel] Optimizing startup time

Erik Huelsmann ehuels at gmail.com
Wed Oct 21 09:08:22 UTC 2009

Yesterday, Alex Muscar and I were chatting about the options and
possibilities to use ABCL on GAE. It turns out that ABCL's startup
gets triggered more often than we expected: instances of ABCL may get
swapped out of memory or mapped to different servers, meaning ABCL
needs to load all from scratch.

So, we were evaluating what options we have to optimize ABCL's startup
time. As always, I want to base such a decision on facts, so I ran the
profiler on ABCL's startup yesterday. The conclusion is that ~ 40 to
45% of our startup time is spent in
"privateGetDeclaredConstructors()". This is due to
loadCompiledFunction calling the class's newInstance() method.

That however, is the processing time spent. I'd love to be able to
reduce it, but the function body delegates to a C/C++ function which
means I can't fully understand its performance characteristics. Now,
the other thing might be "I/O waiting time". Although the profiler
measures "run time" and "wait time", I'm not sure how to deduce I/O
wait time from that, or how to profile I/O times in another way.

If there is considerable I/O wait time, we could probably speed up
ABCL's startup process without having to drastically change any design

Does anybody have any comments to that? Helpful remarks on how to find
out about I/O wait time?



More information about the armedbear-devel mailing list