Mercurial > hg > graal-compiler
comparison src/share/vm/services/memoryPool.cpp @ 11039:71963b3f802a
8013590: NPG: Add a memory pool MXBean for Metaspace
Reviewed-by: jmasa, mgerdin
author | ehelin |
---|---|
date | Wed, 26 Jun 2013 16:58:37 +0200 |
parents | 42e370795a39 |
children | 422920730903 |
comparison
equal
deleted
inserted
replaced
11038:f99cd6e20ab1 | 11039:71963b3f802a |
---|---|
23 */ | 23 */ |
24 | 24 |
25 #include "precompiled.hpp" | 25 #include "precompiled.hpp" |
26 #include "classfile/systemDictionary.hpp" | 26 #include "classfile/systemDictionary.hpp" |
27 #include "classfile/vmSymbols.hpp" | 27 #include "classfile/vmSymbols.hpp" |
28 #include "memory/metaspace.hpp" | |
28 #include "oops/oop.inline.hpp" | 29 #include "oops/oop.inline.hpp" |
29 #include "runtime/handles.inline.hpp" | 30 #include "runtime/handles.inline.hpp" |
30 #include "runtime/javaCalls.hpp" | 31 #include "runtime/javaCalls.hpp" |
31 #include "services/lowMemoryDetector.hpp" | 32 #include "services/lowMemoryDetector.hpp" |
32 #include "services/management.hpp" | 33 #include "services/management.hpp" |
33 #include "services/memoryManager.hpp" | 34 #include "services/memoryManager.hpp" |
34 #include "services/memoryPool.hpp" | 35 #include "services/memoryPool.hpp" |
35 #include "utilities/macros.hpp" | 36 #include "utilities/macros.hpp" |
37 #include "utilities/globalDefinitions.hpp" | |
36 | 38 |
37 MemoryPool::MemoryPool(const char* name, | 39 MemoryPool::MemoryPool(const char* name, |
38 PoolType type, | 40 PoolType type, |
39 size_t init_size, | 41 size_t init_size, |
40 size_t max_size, | 42 size_t max_size, |
254 size_t committed = _codeHeap->capacity(); | 256 size_t committed = _codeHeap->capacity(); |
255 size_t maxSize = (available_for_allocation() ? max_size() : 0); | 257 size_t maxSize = (available_for_allocation() ? max_size() : 0); |
256 | 258 |
257 return MemoryUsage(initial_size(), used, committed, maxSize); | 259 return MemoryUsage(initial_size(), used, committed, maxSize); |
258 } | 260 } |
261 | |
262 MetaspacePool::MetaspacePool() : | |
263 MemoryPool("Metaspace", NonHeap, capacity_in_bytes(), calculate_max_size(), true, false) { } | |
264 | |
265 MemoryUsage MetaspacePool::get_memory_usage() { | |
266 size_t committed = align_size_down_(capacity_in_bytes(), os::vm_page_size()); | |
267 return MemoryUsage(initial_size(), used_in_bytes(), committed, max_size()); | |
268 } | |
269 | |
270 size_t MetaspacePool::used_in_bytes() { | |
271 return MetaspaceAux::allocated_used_bytes(Metaspace::NonClassType); | |
272 } | |
273 | |
274 size_t MetaspacePool::capacity_in_bytes() const { | |
275 return MetaspaceAux::allocated_capacity_bytes(Metaspace::NonClassType); | |
276 } | |
277 | |
278 size_t MetaspacePool::calculate_max_size() const { | |
279 return FLAG_IS_CMDLINE(MaxMetaspaceSize) ? MaxMetaspaceSize : max_uintx; | |
280 } | |
281 | |
282 CompressedKlassSpacePool::CompressedKlassSpacePool() : | |
283 MemoryPool("Compressed Class Space", NonHeap, capacity_in_bytes(), ClassMetaspaceSize, true, false) { } | |
284 | |
285 size_t CompressedKlassSpacePool::used_in_bytes() { | |
286 return MetaspaceAux::allocated_used_bytes(Metaspace::ClassType); | |
287 } | |
288 | |
289 size_t CompressedKlassSpacePool::capacity_in_bytes() const { | |
290 return MetaspaceAux::allocated_capacity_bytes(Metaspace::ClassType); | |
291 } | |
292 | |
293 MemoryUsage CompressedKlassSpacePool::get_memory_usage() { | |
294 size_t committed = align_size_down_(capacity_in_bytes(), os::vm_page_size()); | |
295 return MemoryUsage(initial_size(), used_in_bytes(), committed, max_size()); | |
296 } |