mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
6857194: Add hotspot perf counters to aid class loading performance measurement
Add new jvmstat counters to measure detailed class loading time Reviewed-by: acorn, kamg
This commit is contained in:
parent
c8140c1078
commit
08f5aeffc1
11 changed files with 274 additions and 33 deletions
|
@ -756,6 +756,20 @@ static void is_lock_held_by_thread(Handle loader, PerfCounter* counter, TRAPS) {
|
|||
static jclass jvm_define_class_common(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source, TRAPS) {
|
||||
if (source == NULL) source = "__JVM_DefineClass__";
|
||||
|
||||
assert(THREAD->is_Java_thread(), "must be a JavaThread");
|
||||
JavaThread* jt = (JavaThread*) THREAD;
|
||||
|
||||
PerfClassTraceTime vmtimer(ClassLoader::perf_define_appclass_time(),
|
||||
ClassLoader::perf_define_appclass_selftime(),
|
||||
ClassLoader::perf_define_appclasses(),
|
||||
jt->get_thread_stat()->perf_recursion_counts_addr(),
|
||||
jt->get_thread_stat()->perf_timers_addr(),
|
||||
PerfClassTraceTime::DEFINE_CLASS);
|
||||
|
||||
if (UsePerfData) {
|
||||
ClassLoader::perf_app_classfile_bytes_read()->inc(len);
|
||||
}
|
||||
|
||||
// Since exceptions can be thrown, class initialization can take place
|
||||
// if name is NULL no check for class name in .class stream has to be made.
|
||||
symbolHandle class_name;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue