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 }