8025996: Track metaspace usage when metaspace is expanded
Reviewed-by: coleenp, ehelin
This commit is contained in:
parent
55cbe80300
commit
2cbd654963
@ -43,6 +43,7 @@
|
|||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "runtime/orderAccess.hpp"
|
#include "runtime/orderAccess.hpp"
|
||||||
#include "services/memTracker.hpp"
|
#include "services/memTracker.hpp"
|
||||||
|
#include "services/memoryService.hpp"
|
||||||
#include "utilities/copy.hpp"
|
#include "utilities/copy.hpp"
|
||||||
#include "utilities/debug.hpp"
|
#include "utilities/debug.hpp"
|
||||||
|
|
||||||
@ -735,6 +736,9 @@ class SpaceManager : public CHeapObj<mtClass> {
|
|||||||
// and allocates from that chunk.
|
// and allocates from that chunk.
|
||||||
MetaWord* grow_and_allocate(size_t word_size);
|
MetaWord* grow_and_allocate(size_t word_size);
|
||||||
|
|
||||||
|
// Notify memory usage to MemoryService.
|
||||||
|
void track_metaspace_memory_usage();
|
||||||
|
|
||||||
// debugging support.
|
// debugging support.
|
||||||
|
|
||||||
void dump(outputStream* const out) const;
|
void dump(outputStream* const out) const;
|
||||||
@ -2060,6 +2064,15 @@ size_t SpaceManager::calc_chunk_size(size_t word_size) {
|
|||||||
return chunk_word_size;
|
return chunk_word_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SpaceManager::track_metaspace_memory_usage() {
|
||||||
|
if (is_init_completed()) {
|
||||||
|
if (is_class()) {
|
||||||
|
MemoryService::track_compressed_class_memory_usage();
|
||||||
|
}
|
||||||
|
MemoryService::track_metaspace_memory_usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MetaWord* SpaceManager::grow_and_allocate(size_t word_size) {
|
MetaWord* SpaceManager::grow_and_allocate(size_t word_size) {
|
||||||
assert(vs_list()->current_virtual_space() != NULL,
|
assert(vs_list()->current_virtual_space() != NULL,
|
||||||
"Should have been set");
|
"Should have been set");
|
||||||
@ -2099,6 +2112,9 @@ MetaWord* SpaceManager::grow_and_allocate(size_t word_size) {
|
|||||||
mem = next->allocate(word_size);
|
mem = next->allocate(word_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Track metaspace memory usage statistic.
|
||||||
|
track_metaspace_memory_usage();
|
||||||
|
|
||||||
return mem;
|
return mem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,6 +148,12 @@ public:
|
|||||||
static void track_code_cache_memory_usage() {
|
static void track_code_cache_memory_usage() {
|
||||||
track_memory_pool_usage(_code_heap_pool);
|
track_memory_pool_usage(_code_heap_pool);
|
||||||
}
|
}
|
||||||
|
static void track_metaspace_memory_usage() {
|
||||||
|
track_memory_pool_usage(_metaspace_pool);
|
||||||
|
}
|
||||||
|
static void track_compressed_class_memory_usage() {
|
||||||
|
track_memory_pool_usage(_compressed_class_pool);
|
||||||
|
}
|
||||||
static void track_memory_pool_usage(MemoryPool* pool);
|
static void track_memory_pool_usage(MemoryPool* pool);
|
||||||
|
|
||||||
static void gc_begin(bool fullGC, bool recordGCBeginTime,
|
static void gc_begin(bool fullGC, bool recordGCBeginTime,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user