Request for review 7178145: Change constMethodOop::_exception_table to optionally inlined u2 table

Jiangli Zhou jiangli.zhou at oracle.com
Tue Jun 19 14:24:37 PDT 2012


Hi,

Please review the following webrev for method exception handler table 
memory reduction:

http://javaweb.sfbay.sun.com/~jianzhou/webrev.exceptiontable/

Per VM spec the method exception handler table is tuples of u2's, but in 
hotspot the data are stored as ints in constMethodOop::_exception_table 
(a typeArray). The change reduces the exception handler table memory 
usage by:

    * Changing the exception handler table from int array to u2 array.
    * Making the exception handler table as conditionally allocated
      inlined table in constMethod, and eliminate the _exception_table
      field. The inlined table is only allocated when the exception
      table attribute exists for the method.
    * Removing the overhead of the extra typeArray, the data is directly
      stored in the inlined table when exception handler exists for a
      method.

Tested with runthese, jprt and vm.quick.testlist. No noticeable 
performance degradation from specjvm98 and specjbb2005.

==============================================================================
logs.exceptiontable_baseline.1:
   Benchmark           Samples        Mean     Stdev             Geomean 
Weight
   specjbb2005               8    56372.58    763.16
   specjvm98                 8      534.50     19.50
==============================================================================
logs.exceptiontable.1:
   Benchmark           Samples        Mean     Stdev   %Diff     P  
Significant
   specjbb2005               8    56734.05    880.76    0.64 
0.395            *
   specjvm98                 8      531.05     21.00   -0.65 
0.738            *
==============================================================================

==============================================================================
logs.exceptiontable_baseline.2:
   Benchmark           Samples        Mean     Stdev             Geomean 
Weight
   specjvm98                 8      527.63     17.10
==============================================================================
logs.exceptiontable.2:
   Benchmark           Samples        Mean     Stdev   %Diff     P  
Significant
   specjvm98                 8      536.79     20.54    1.74 
0.349            *
==============================================================================

Thanks,

Jiangli

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20120619/0cdf3d3e/attachment.html 


More information about the hotspot-runtime-dev mailing list