comparison src/share/vm/prims/jvmtiImpl.hpp @ 6197:d2a62e0f25eb

6995781: Native Memory Tracking (Phase 1) 7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain
author zgu
date Thu, 28 Jun 2012 17:03:16 -0400
parents 46a56fac55c7
children da91efe96a93
comparison
equal deleted inserted replaced
6174:74533f63b116 6197:d2a62e0f25eb
62 // void (*_listener_fun)(void *this_obj, address* cache) 62 // void (*_listener_fun)(void *this_obj, address* cache)
63 // gets called with the cache's new address. This gives the user of the GrowableCache a callback 63 // gets called with the cache's new address. This gives the user of the GrowableCache a callback
64 // to update its pointer to the address cache. 64 // to update its pointer to the address cache.
65 // 65 //
66 66
67 class GrowableElement : public CHeapObj { 67 class GrowableElement : public CHeapObj<mtInternal> {
68 public: 68 public:
69 virtual address getCacheValue() =0; 69 virtual address getCacheValue() =0;
70 virtual bool equals(GrowableElement* e) =0; 70 virtual bool equals(GrowableElement* e) =0;
71 virtual bool lessThan(GrowableElement *e)=0; 71 virtual bool lessThan(GrowableElement *e)=0;
72 virtual GrowableElement *clone() =0; 72 virtual GrowableElement *clone() =0;
128 // Used by : JvmtiBreakpoints 128 // Used by : JvmtiBreakpoints
129 // Used by JVMTI methods: none directly. 129 // Used by JVMTI methods: none directly.
130 // Note : typesafe wrapper for GrowableCache of JvmtiBreakpoint 130 // Note : typesafe wrapper for GrowableCache of JvmtiBreakpoint
131 // 131 //
132 132
133 class JvmtiBreakpointCache : public CHeapObj { 133 class JvmtiBreakpointCache : public CHeapObj<mtInternal> {
134 134
135 private: 135 private:
136 GrowableCache _cache; 136 GrowableCache _cache;
137 137
138 public: 138 public:
256 // 256 //
257 // It would be possible to make JvmtiBreakpoints a static class, but I've made it 257 // It would be possible to make JvmtiBreakpoints a static class, but I've made it
258 // CHeap allocated to emphasize its similarity to JvmtiFramePops. 258 // CHeap allocated to emphasize its similarity to JvmtiFramePops.
259 // 259 //
260 260
261 class JvmtiBreakpoints : public CHeapObj { 261 class JvmtiBreakpoints : public CHeapObj<mtInternal> {
262 private: 262 private:
263 263
264 JvmtiBreakpointCache _bps; 264 JvmtiBreakpointCache _bps;
265 265
266 // These should only be used by VM_ChangeBreakpoints 266 // These should only be used by VM_ChangeBreakpoints
494 * when operating on the queue (except for the "pending" events). 494 * when operating on the queue (except for the "pending" events).
495 */ 495 */
496 class JvmtiDeferredEventQueue : AllStatic { 496 class JvmtiDeferredEventQueue : AllStatic {
497 friend class JvmtiDeferredEvent; 497 friend class JvmtiDeferredEvent;
498 private: 498 private:
499 class QueueNode : public CHeapObj { 499 class QueueNode : public CHeapObj<mtInternal> {
500 private: 500 private:
501 JvmtiDeferredEvent _event; 501 JvmtiDeferredEvent _event;
502 QueueNode* _next; 502 QueueNode* _next;
503 503
504 public: 504 public: