comparison src/share/vm/oops/instanceKlass.cpp @ 10345:b7fa10a3a69a

8014288: perf regression in nashorn JDK-8008448.js test after 8008511 changes Summary: The fix of perf regression is to use method_idnum() for direct indexing into NMT Reviewed-by: twisti, kvn, coleenp, dholmes Contributed-by: serguei.spitsyn@oracle.com
author sspitsyn
date Thu, 23 May 2013 23:04:33 -0700
parents 6bd680e9ea35
children 6c138b9851fb
comparison
equal deleted inserted replaced
10344:699d9df07e59 10345:b7fa10a3a69a
2752 return best; 2752 return best;
2753 } 2753 }
2754 return NULL; 2754 return NULL;
2755 } 2755 }
2756 2756
2757 void InstanceKlass::add_member_name(Handle mem_name) { 2757 void InstanceKlass::add_member_name(int index, Handle mem_name) {
2758 jweak mem_name_wref = JNIHandles::make_weak_global(mem_name); 2758 jweak mem_name_wref = JNIHandles::make_weak_global(mem_name);
2759 MutexLocker ml(MemberNameTable_lock); 2759 MutexLocker ml(MemberNameTable_lock);
2760 assert(0 <= index && index < idnum_allocated_count(), "index is out of bounds");
2760 DEBUG_ONLY(No_Safepoint_Verifier nsv); 2761 DEBUG_ONLY(No_Safepoint_Verifier nsv);
2761 2762
2762 if (_member_names == NULL) { 2763 if (_member_names == NULL) {
2763 _member_names = new (ResourceObj::C_HEAP, mtClass) MemberNameTable(); 2764 _member_names = new (ResourceObj::C_HEAP, mtClass) MemberNameTable(idnum_allocated_count());
2764 } 2765 }
2765 _member_names->add_member_name(mem_name_wref); 2766 _member_names->add_member_name(index, mem_name_wref);
2767 }
2768
2769 oop InstanceKlass::get_member_name(int index) {
2770 MutexLocker ml(MemberNameTable_lock);
2771 assert(0 <= index && index < idnum_allocated_count(), "index is out of bounds");
2772 DEBUG_ONLY(No_Safepoint_Verifier nsv);
2773
2774 if (_member_names == NULL) {
2775 return NULL;
2776 }
2777 oop mem_name =_member_names->get_member_name(index);
2778 return mem_name;
2766 } 2779 }
2767 2780
2768 // ----------------------------------------------------------------------------------------------------- 2781 // -----------------------------------------------------------------------------------------------------
2769 // Printing 2782 // Printing
2770 2783