Request Review: 6902182: Starting with jdwp agent should not incur performance penalty

Deneau, Tom tom.deneau at
Wed Dec 9 13:31:08 PST 2009

Webrev is at

This webrev changes two places in the compiler where code for exception
throws is being JITted.

   * previously these checked jvmti_can_post_exceptions() at compile
     time, compiling in a slow path if true

   * now they call a new jvmtiExport::must_post_exception_events at
     run time, and take a faster path if must_post_exception_events is

must_post_exception_events uses logic similar to that used
by jvmtiExport::post_exception_throw and returns false if
jvmtiExport::post_exception_throw wouldn't have done anything.

A similar change of calling must_post_exception_events instead of
jvmti_can_post_exceptions is made in the exception runtime code in
trace_exception in opto/runtime.cpp

Throughput Numbers from a JIRA-based web workload (JIRA makes fairly heavy use
of exception throws and catches).  Bigger is better.

   unmodified hotspot, no jdwp agent       69.7
   unmodified hotspot, with jdwp agent     11.8 
   modified hotspot, with jdwp agent       65.7
All changes are platform-independent.

-- Tom Deneau
   tom.deneau at

More information about the hotspot-compiler-dev mailing list