JIT threshold, priority queue

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Wed May 30 19:30:40 PDT 2007

Measuring performance improvements from using a priority queue instead of a fifo 
might be hard.  Only when the queue is backed up will it behave differently and 
that's generally a transient state so the most likely effect of this would be 
better startup or faster warmup of an application.  Internally we use apps like 
NetBeans, JEdit and LimeWire for startup testing so maybe you could try looking 
at one of them.

As Steve mentioned, the LogCompilation output includes events for compile 
requests being placed in the compile queue and for the creation of the actual 
nmethod which should allow you to track any differences.  Look for the 
task_queued and nmethod entries in the log to find the event timestamps.


Nima Gougol wrote:
> Thanks Peter for your directions and suggestions. I hope compiler folks 
> get back to me pretty soon.  I already have some ideas to adjust 
> compilation time. My main question is , for now , how to collect 
> statistics and compare performances of different approaches? By the way, 
> I am using IBM Ashes benchmarks on Solaris x86. I wish I had SPECs 
> benchmarks but they are a little expensive. Which benchmarking 
> applications and methods would you guys suggest?
> Best
> Nima R. Gougol
> On 5/27/07, *Peter B. Kessler* <Peter.Kessler at sun.com 
> <mailto:Peter.Kessler at sun.com>> wrote:
>     This question is about the HotSpot runtime compilers, not about
>     the HotSpot runtime libraries.  I've cc'd
>          hotspot-compiler-dev at openjdk.java.net
>     <mailto:hotspot-compiler-dev at openjdk.java.net>
>     who should be able to help you.  I don't know much about the
>     runtime compilation policy, but I do know that the compiler
>     folks wish they could _delay_ compilation, so they get better
>     statistics about the code they are compiling.
>                             ... peter
>     Nima Gougol wrote:
>      > Hello everybody. Here I am trying to optimize Hotspot JDK 7. You guys
>      > know hotspot schedule hot methods whose usage frequency is higher
>     than a
>      > fixed threshold through a FIFO queue for Just-In-Time
>     compilation. I am
>      > trying to enhance this method with dynamic threshold and priority
>      > queues. I have already done some modifications. I have two problems.
>      > First, I need to trace the queue of methods that are scheduled
>     for JIT
>      > compilations and see and compare my new policy with the default.
>     How can
>      > I trace and log methods that are queue for JIT compilation?
>      >
>      > Second, I am trying to add to constants in through the file,
>      > src/share/vm/opto/c2_globals.hpp in order to use in my
>     implementations
>      > for instance in file src/share/vm/oops/methodOop.hpp. But while
>     making
>      > the hotpsot, compiler produce error that these identifiers are not
>      > defined. I think this is due to my way of building. Please let me
>     know
>      > how I should add these identifiers and build hotspot.
>      >
>      > product(intx, CICompilerQueueType,
>     1,                                     \
>      >           "Compiler Queue Algorithm to
>      > use")                                \
>      >
>      > \
>      >   product(intx, PairQueueLength,
>      > 10,                                         \
>      >           "Max Length of Pair
>      > Queue")                                       \
>      >
>      > Best Regards,
>      >
>      > Nima R. Gougol
>     --
>     NOTICE: This email message is for the sole use of the intended
>     recipient(s) and may contain confidential and privileged information.
>     Any unauthorized review, use, disclosure or distribution is prohibited.
>     If you are not the intended recipient, please contact the sender by
>     reply email and destroy all copies of the original message.

More information about the hotspot-compiler-dev mailing list