comparison src/share/vm/prims/jvm.cpp @ 875:6a93908f268f

6857194: Add hotspot perf counters to aid class loading performance measurement Summary: Add new jvmstat counters to measure detailed class loading time Reviewed-by: acorn, kamg
author mchung
date Fri, 10 Jul 2009 11:10:00 -0700
parents be93aad57795
children abe076e3636f
comparison
equal deleted inserted replaced
812:85d0690f7d12 875:6a93908f268f
754 754
755 // common code for JVM_DefineClass() and JVM_DefineClassWithSource() 755 // common code for JVM_DefineClass() and JVM_DefineClassWithSource()
756 static jclass jvm_define_class_common(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source, TRAPS) { 756 static jclass jvm_define_class_common(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len, jobject pd, const char *source, TRAPS) {
757 if (source == NULL) source = "__JVM_DefineClass__"; 757 if (source == NULL) source = "__JVM_DefineClass__";
758 758
759 assert(THREAD->is_Java_thread(), "must be a JavaThread");
760 JavaThread* jt = (JavaThread*) THREAD;
761
762 PerfClassTraceTime vmtimer(ClassLoader::perf_define_appclass_time(),
763 ClassLoader::perf_define_appclass_selftime(),
764 ClassLoader::perf_define_appclasses(),
765 jt->get_thread_stat()->perf_recursion_counts_addr(),
766 jt->get_thread_stat()->perf_timers_addr(),
767 PerfClassTraceTime::DEFINE_CLASS);
768
769 if (UsePerfData) {
770 ClassLoader::perf_app_classfile_bytes_read()->inc(len);
771 }
772
759 // Since exceptions can be thrown, class initialization can take place 773 // Since exceptions can be thrown, class initialization can take place
760 // if name is NULL no check for class name in .class stream has to be made. 774 // if name is NULL no check for class name in .class stream has to be made.
761 symbolHandle class_name; 775 symbolHandle class_name;
762 if (name != NULL) { 776 if (name != NULL) {
763 const int str_len = (int)strlen(name); 777 const int str_len = (int)strlen(name);