8317772: NMT: Make peak values available in release builds
Reviewed-by: jsjolen, zgu
This commit is contained in:
parent
4c79e7d59c
commit
32ccf018eb
@ -45,7 +45,6 @@
|
||||
|
||||
size_t MallocMemorySummary::_snapshot[CALC_OBJ_SIZE_IN_TYPE(MallocMemorySnapshot, size_t)];
|
||||
|
||||
#ifdef ASSERT
|
||||
void MemoryCounter::update_peak(size_t size, size_t cnt) {
|
||||
size_t peak_sz = peak_size();
|
||||
while (peak_sz < size) {
|
||||
@ -59,7 +58,6 @@ void MemoryCounter::update_peak(size_t size, size_t cnt) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // ASSERT
|
||||
|
||||
// Total malloc'd memory used by arenas
|
||||
size_t MallocMemorySnapshot::total_arena() const {
|
||||
|
@ -46,25 +46,20 @@ class MemoryCounter {
|
||||
volatile size_t _count;
|
||||
volatile size_t _size;
|
||||
|
||||
#ifdef ASSERT
|
||||
// Peak size and count. Note: Peak count is the count at the point
|
||||
// peak size was reached, not the absolute highest peak count.
|
||||
volatile size_t _peak_count;
|
||||
volatile size_t _peak_size;
|
||||
void update_peak(size_t size, size_t cnt);
|
||||
#endif // ASSERT
|
||||
|
||||
public:
|
||||
MemoryCounter() : _count(0), _size(0) {
|
||||
DEBUG_ONLY(_peak_count = 0;)
|
||||
DEBUG_ONLY(_peak_size = 0;)
|
||||
}
|
||||
MemoryCounter() : _count(0), _size(0), _peak_count(0), _peak_size(0) {}
|
||||
|
||||
inline void allocate(size_t sz) {
|
||||
size_t cnt = Atomic::add(&_count, size_t(1), memory_order_relaxed);
|
||||
if (sz > 0) {
|
||||
size_t sum = Atomic::add(&_size, sz, memory_order_relaxed);
|
||||
DEBUG_ONLY(update_peak(sum, cnt);)
|
||||
update_peak(sum, cnt);
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,7 +76,7 @@ class MemoryCounter {
|
||||
if (sz != 0) {
|
||||
assert(sz >= 0 || size() >= size_t(-sz), "Must be");
|
||||
size_t sum = Atomic::add(&_size, size_t(sz), memory_order_relaxed);
|
||||
DEBUG_ONLY(update_peak(sum, _count);)
|
||||
update_peak(sum, _count);
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,11 +84,11 @@ class MemoryCounter {
|
||||
inline size_t size() const { return Atomic::load(&_size); }
|
||||
|
||||
inline size_t peak_count() const {
|
||||
return DEBUG_ONLY(Atomic::load(&_peak_count)) NOT_DEBUG(0);
|
||||
return Atomic::load(&_peak_count);
|
||||
}
|
||||
|
||||
inline size_t peak_size() const {
|
||||
return DEBUG_ONLY(Atomic::load(&_peak_size)) NOT_DEBUG(0);
|
||||
return Atomic::load(&_peak_size);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -246,7 +246,7 @@ void MemSummaryReporter::report_summary_of_type(MEMFLAGS flag,
|
||||
|
||||
// report malloc'd memory
|
||||
if (amount_in_current_scale(malloc_memory->malloc_size()) > 0
|
||||
DEBUG_ONLY(|| amount_in_current_scale(malloc_memory->malloc_peak_size()) > 0)) {
|
||||
|| amount_in_current_scale(malloc_memory->malloc_peak_size()) > 0) {
|
||||
print_malloc_line(malloc_memory->malloc_counter());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user