60 } 61 62 static const JavaPermission permission() { 63 JavaPermission p = {"java.lang.management.ManagementPermission", 64 "monitor", NULL}; 65 return p; 66 } 67 }; 68 69 70 class ClassLoaderStats : public ResourceObj { 71 public: 72 ClassLoaderData* _cld; 73 oop _class_loader; 74 oop _parent; 75 76 size_t _chunk_sz; 77 size_t _block_sz; 78 uintx _classes_count; 79 80 size_t _anon_chunk_sz; 81 size_t _anon_block_sz; 82 uintx _anon_classes_count; 83 84 size_t _hidden_chunk_sz; 85 size_t _hidden_block_sz; 86 uintx _hidden_classes_count; 87 88 ClassLoaderStats() : 89 _cld(0), 90 _class_loader(0), 91 _parent(0), 92 _chunk_sz(0), 93 _block_sz(0), 94 _classes_count(0), 95 _anon_chunk_sz(0), 96 _anon_block_sz(0), 97 _anon_classes_count(0), 98 _hidden_chunk_sz(0), 99 _hidden_block_sz(0), 100 _hidden_classes_count(0) { 101 } 102 }; 103 104 105 class ClassLoaderStatsClosure : public CLDClosure { 106 protected: 107 static bool oop_equals(oop const& s1, oop const& s2) { 108 return s1 == s2; 109 } 110 111 static unsigned oop_hash(oop const& s1) { 112 unsigned hash = (unsigned)((uintptr_t)&s1); 113 return hash ^ (hash >> LogMinObjAlignment); 114 } 115 116 typedef ResourceHashtable<oop, ClassLoaderStats*, 117 ClassLoaderStatsClosure::oop_hash, ClassLoaderStatsClosure::oop_equals> StatsTable; | 60 } 61 62 static const JavaPermission permission() { 63 JavaPermission p = {"java.lang.management.ManagementPermission", 64 "monitor", NULL}; 65 return p; 66 } 67 }; 68 69 70 class ClassLoaderStats : public ResourceObj { 71 public: 72 ClassLoaderData* _cld; 73 oop _class_loader; 74 oop _parent; 75 76 size_t _chunk_sz; 77 size_t _block_sz; 78 uintx _classes_count; 79 80 size_t _hidden_chunk_sz; 81 size_t _hidden_block_sz; 82 uintx _hidden_classes_count; 83 84 ClassLoaderStats() : 85 _cld(0), 86 _class_loader(0), 87 _parent(0), 88 _chunk_sz(0), 89 _block_sz(0), 90 _classes_count(0), 91 _hidden_chunk_sz(0), 92 _hidden_block_sz(0), 93 _hidden_classes_count(0) { 94 } 95 }; 96 97 98 class ClassLoaderStatsClosure : public CLDClosure { 99 protected: 100 static bool oop_equals(oop const& s1, oop const& s2) { 101 return s1 == s2; 102 } 103 104 static unsigned oop_hash(oop const& s1) { 105 unsigned hash = (unsigned)((uintptr_t)&s1); 106 return hash ^ (hash >> LogMinObjAlignment); 107 } 108 109 typedef ResourceHashtable<oop, ClassLoaderStats*, 110 ClassLoaderStatsClosure::oop_hash, ClassLoaderStatsClosure::oop_equals> StatsTable; |