Understanding PrintOptoAssembly

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.

- Charlie

More information about the hotspot-dev mailing list