From: Eliot M. <mo...@cs...> - 2010-07-29 19:14:16
|
On 7/29/2010 1:33 PM, Yang Wang wrote: > Hmmm. I've found one reason: Putting "MessageDigest.getInstance()" out of the loop makes Jikes significant faster: > > If that function call is in the loop (for both Jikes and HotSpot), Jikes is 40 times slower than HotSpot > > If that function call is out of the loop (still for both), Jikes is only about 20% slower than HotSpot. Sounds like inlining is affecting this. Which continues to point the finger at available registers, one way or the other, or the register allocation algorithm. You can get Jikes RVM to dump the code for that method, which might confirm why it is slow (but not why HotSpot is faster). In looking at the open source code for HotSpot, I see that it has these relevant flags: -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly But using them causes the VM to try to load a dll that is not present -- presumably I would have to build the VM myself with suitable "make" options to get that dll that support disassembly. Cheers -- Eliot Moss |