Mercurial > hg > truffle
comparison src/share/vm/services/memoryManager.cpp @ 6275:957c266d8bc5
Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 21 Aug 2012 10:39:19 +0200 |
parents | d2a62e0f25eb |
children | da91efe96a93 |
comparison
equal
deleted
inserted
replaced
5891:fd8832ae511d | 6275:957c266d8bc5 |
---|---|
164 f->do_oop((oop*) &_memory_mgr_obj); | 164 f->do_oop((oop*) &_memory_mgr_obj); |
165 } | 165 } |
166 | 166 |
167 GCStatInfo::GCStatInfo(int num_pools) { | 167 GCStatInfo::GCStatInfo(int num_pools) { |
168 // initialize the arrays for memory usage | 168 // initialize the arrays for memory usage |
169 _before_gc_usage_array = (MemoryUsage*) NEW_C_HEAP_ARRAY(MemoryUsage, num_pools); | 169 _before_gc_usage_array = (MemoryUsage*) NEW_C_HEAP_ARRAY(MemoryUsage, num_pools, mtInternal); |
170 _after_gc_usage_array = (MemoryUsage*) NEW_C_HEAP_ARRAY(MemoryUsage, num_pools); | 170 _after_gc_usage_array = (MemoryUsage*) NEW_C_HEAP_ARRAY(MemoryUsage, num_pools, mtInternal); |
171 _usage_array_size = num_pools; | 171 _usage_array_size = num_pools; |
172 clear(); | 172 clear(); |
173 } | 173 } |
174 | 174 |
175 GCStatInfo::~GCStatInfo() { | 175 GCStatInfo::~GCStatInfo() { |
176 FREE_C_HEAP_ARRAY(MemoryUsage*, _before_gc_usage_array); | 176 FREE_C_HEAP_ARRAY(MemoryUsage*, _before_gc_usage_array, mtInternal); |
177 FREE_C_HEAP_ARRAY(MemoryUsage*, _after_gc_usage_array); | 177 FREE_C_HEAP_ARRAY(MemoryUsage*, _after_gc_usage_array, mtInternal); |
178 } | 178 } |
179 | 179 |
180 void GCStatInfo::set_gc_usage(int pool_index, MemoryUsage usage, bool before_gc) { | 180 void GCStatInfo::set_gc_usage(int pool_index, MemoryUsage usage, bool before_gc) { |
181 MemoryUsage* gc_usage_array; | 181 MemoryUsage* gc_usage_array; |
182 if (before_gc) { | 182 if (before_gc) { |
212 delete _current_gc_stat; | 212 delete _current_gc_stat; |
213 } | 213 } |
214 | 214 |
215 void GCMemoryManager::initialize_gc_stat_info() { | 215 void GCMemoryManager::initialize_gc_stat_info() { |
216 assert(MemoryService::num_memory_pools() > 0, "should have one or more memory pools"); | 216 assert(MemoryService::num_memory_pools() > 0, "should have one or more memory pools"); |
217 _last_gc_stat = new(ResourceObj::C_HEAP) GCStatInfo(MemoryService::num_memory_pools()); | 217 _last_gc_stat = new(ResourceObj::C_HEAP, mtGC) GCStatInfo(MemoryService::num_memory_pools()); |
218 _current_gc_stat = new(ResourceObj::C_HEAP) GCStatInfo(MemoryService::num_memory_pools()); | 218 _current_gc_stat = new(ResourceObj::C_HEAP, mtGC) GCStatInfo(MemoryService::num_memory_pools()); |
219 // tracking concurrent collections we need two objects: one to update, and one to | 219 // tracking concurrent collections we need two objects: one to update, and one to |
220 // hold the publicly available "last (completed) gc" information. | 220 // hold the publicly available "last (completed) gc" information. |
221 } | 221 } |
222 | 222 |
223 void GCMemoryManager::gc_begin(bool recordGCBeginTime, bool recordPreGCUsage, | 223 void GCMemoryManager::gc_begin(bool recordGCBeginTime, bool recordPreGCUsage, |