提交 d1380977 编写于 作者: S stefank

8025996: Track metaspace usage when metaspace is expanded

Reviewed-by: coleenp, ehelin
上级 f6921aa8
...@@ -43,6 +43,7 @@ ...@@ -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> { ...@@ -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) { ...@@ -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) { ...@@ -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: ...@@ -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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册