Charles Oliver Nutter
charles.nutter at sun.com
Fri Oct 3 19:55:22 PDT 2008
I'm trying to take JRuby performance up a notch, and it seems like the
next best thing for me to do is examine what hotspot is actually
emitting. At the JVM Languages Summit, Cliff Click informed me that
paths we expected were inlining actually were not. As a result of my
dicussions with him I've decided to try other flags to get more
information. The first such flag I have easy access to is PrintOptoAssembly.
However, I'm having some trouble understanding the output. Would it be
possible for someone to post (on a wiki, perhaps) a snippit of a log and
some walkthrough of what each element means?
And I will describe the actual problem I have. We do dynamic invocation
by calling through a piece of normal Java code called CachingCallSite.
CachingCallSite has a call method that looks up the method and invokes
it. If the cache is successful, it will continue to invoke the same
method every time. But since the calls all pass through a virtual
invocation to a totally generalized piece of Java code, the
dynamically-selected call does not inline. I need to try other
techniques, and I want some feedback that shows convincingly whether or
not I'm making progress.
More information about the hotspot-dev