RFR(L): 8023657: New type profiling points: arguments to call

Roland Westrelin roland.westrelin at oracle.com
Wed Oct 2 10:02:35 PDT 2013

Here is a new webrev for the new profiling points, only profiling of arguments at calls this time. This one includes tiered support on 32bit and 64bit x86.


The output of -XX:+PrintMethodData is:

6 invokevirtual 2 <TestProfiling.m2(LTestProfiling$C;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;>
  0   bci: 6    VirtualCallData     count(0) entries(1)
                                    'TestProfiling'(4746 1.00)
                argument types      0: stack(1) 'TestProfiling$C'
                                    1: stack(2) unknown (null seen)

Profiling can either be off, on only for jsr292 related calls (invokedynamic, invokehandle or all invokes in a lambda form) or on for all methods and invokes. -XX:TypeProfile={0,1,2} is used to pick a level of profiling.
Once all profiling is in (arguments, parameters, return value), in order to limit the number of options my plan is to use TypeProfile=xyz, with x,y,z in {0,1,2} to select the level of profiling for each. TypeProfile=111, Typeprofile=222 etc.
Profiling is by default on only for jsr292 related calls in order to not impact startup/footprint of standard java apps.


More information about the hotspot-compiler-dev mailing list