JIT threshold, priority queue

Nima Gougol nima.gougol at gmail.com
Fri Jun 1 16:27:19 PDT 2007


Thanks Tom, Steve and Simon for your directions.

I still have some questions about benchmarking. I understand that measuring
the apps initialization time such as NetBeans and going through the HotSpot
log files may indicate performance in client mode.  How about server mode?
Does it still make sense to measure  apps initialization times in server
moder? Again, I already have Ashes benchmarks but I do not have SPEC
benchmarks. Do I have to invest for those to measure sever mode performance?

Second, please give me any direction you may, regarding debugging and
tracing HotSpot source codes with Solaris dbx, and printf (or tty) or
whatsoever?

If, as Steve says ", the counter and triggers in addition to the compile
queue
handling is likely to be changing relatively soon in order to accommodate
the needs of tiered compilation" How could I have the chance of contributing
to JDK 7 while I am working on compile triggering and queuing area?


Best Regards,

Nima R. Gougol



On 5/30/07, Tom Rodriguez <Thomas.Rodriguez at sun.com> wrote:
>
> 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.
>
> tom
>
> 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.
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20070601/3371f9fa/attachment.html 


More information about the hotspot-compiler-dev mailing list