Mercurial > hg > graal-compiler
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: |