src/share/vm/services/memBaseline.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/services/memBaseline.hpp Tue Aug 12 07:52:29 2014
--- new/src/share/vm/services/memBaseline.hpp Tue Aug 12 07:52:28 2014
*** 59,124 ****
--- 59,111 ----
by_size, // by memory size
by_site // by call site where the memory is allocated from
};
private:
// All baseline data is stored in this arena
Arena* _arena;
// Summary information
- MallocMemorySnapshot* _malloc_memory_snapshot;
- VirtualMemorySnapshot* _virtual_memory_snapshot;
size_t _class_count;
// Allocation sites information
// Malloc allocation sites
! LinkedListImpl<MallocSite, ResourceObj::ARENA>
_malloc_sites;
! LinkedListImpl<MallocSite> _malloc_sites;
// All virtual memory allocations
! LinkedListImpl<ReservedMemoryRegion, ResourceObj::ARENA>
_virtual_memory_allocations;
! LinkedListImpl<ReservedMemoryRegion> _virtual_memory_allocations;
// Virtual memory allocations by allocation sites, always in by_address
// order
! LinkedListImpl<VirtualMemoryAllocationSite, ResourceObj::ARENA>
_virtual_memory_sites;
! LinkedListImpl<VirtualMemoryAllocationSite> _virtual_memory_sites;
SortingOrder _malloc_sites_order;
SortingOrder _virtual_memory_sites_order;
BaselineType _baseline_type;
public:
// create a memory baseline
MemBaseline():
_baseline_type(Not_baselined),
! _class_count(0),
_arena(NULL),
_malloc_memory_snapshot(NULL),
_virtual_memory_snapshot(NULL),
_malloc_sites(NULL) {
! _class_count(0) {
}
~MemBaseline() {
reset();
if (_arena != NULL) {
delete _arena;
}
}
bool baseline(bool summaryOnly = true);
BaselineType baseline_type() const { return _baseline_type; }
- MallocMemorySnapshot* malloc_memory_snapshot() const {
! return &_malloc_memory_snapshot;
}
- VirtualMemorySnapshot* virtual_memory_snapshot() const {
! return &_virtual_memory_snapshot;
}
MallocSiteIterator malloc_sites(SortingOrder order);
VirtualMemorySiteIterator virtual_memory_sites(SortingOrder order);
*** 131,205 ****
--- 118,183 ----
// Total reserved memory = total malloc'd memory + total reserved virtual
// memory
size_t total_reserved_memory() const {
assert(baseline_type() != Not_baselined, "Not yet baselined");
assert(_virtual_memory_snapshot != NULL, "No virtual memory snapshot");
! assert(_malloc_memory_snapshot != NULL, "No malloc memory snapshot");
size_t amount = _malloc_memory_snapshot->total() +
_virtual_memory_snapshot->total_reserved();
+ size_t amount = _malloc_memory_snapshot.total() +
! _virtual_memory_snapshot.total_reserved();
return amount;
}
// Total committed memory = total malloc'd memory + total committed
// virtual memory
size_t total_committed_memory() const {
assert(baseline_type() != Not_baselined, "Not yet baselined");
assert(_virtual_memory_snapshot != NULL,
! "Not a snapshot");
size_t amount = _malloc_memory_snapshot->total() +
_virtual_memory_snapshot->total_committed();
+ size_t amount = _malloc_memory_snapshot.total() +
! _virtual_memory_snapshot.total_committed();
return amount;
}
size_t total_arena_memory() const {
assert(baseline_type() != Not_baselined, "Not yet baselined");
! assert(_malloc_memory_snapshot != NULL, "Not yet baselined");
return _malloc_memory_snapshot->total_arena();
! return _malloc_memory_snapshot.total_arena();
}
size_t malloc_tracking_overhead() const {
assert(baseline_type() != Not_baselined, "Not yet baselined");
! return _malloc_memory_snapshot->malloc_overhead()->size();
! MemBaseline* bl = const_cast<MemBaseline*>(this);
+ return bl->_malloc_memory_snapshot.malloc_overhead()->size();
}
! const MallocMemory* malloc_memory(MEMFLAGS flag) const {
! assert(_malloc_memory_snapshot != NULL, "Not a snapshot");
! return _malloc_memory_snapshot->by_type(flag);
! assert(baseline_type() != Not_baselined, "Not yet baselined");
! return _malloc_memory_snapshot.by_type(flag);
}
! const VirtualMemory* virtual_memory(MEMFLAGS flag) const {
! assert(_virtual_memory_snapshot != NULL, "Not a snapshot");
! return _virtual_memory_snapshot->by_type(flag);
! assert(baseline_type() != Not_baselined, "Not yet baselined");
! return _virtual_memory_snapshot.by_type(flag);
}
size_t class_count() const {
assert(baseline_type() != Not_baselined, "Not yet baselined");
return _class_count;
}
size_t thread_count() const {
assert(baseline_type() != Not_baselined, "Not yet baselined");
! assert(_malloc_memory_snapshot != NULL, "Baselined?");
return _malloc_memory_snapshot->thread_count();
! return _malloc_memory_snapshot.thread_count();
}
// reset the baseline for reuse
void reset() {
_baseline_type = Not_baselined;
! _malloc_memory_snapshot = NULL;
! _virtual_memory_snapshot = NULL;
! _malloc_memory_snapshot.reset();
! _virtual_memory_snapshot.reset();
_class_count = 0;
! _malloc_sites = NULL;
! _virtual_memory_sites = NULL;
! _virtual_memory_allocations = NULL;
if (_arena != NULL) {
_arena->destruct_contents();
}
! _malloc_sites.clear();
! _virtual_memory_sites.clear();
! _virtual_memory_allocations.clear();
}
private:
// Baseline summary information
bool baseline_summary();
*** 208,219 ****
--- 186,195 ----
bool baseline_allocation_sites();
// Aggregate virtual memory allocation by allocation sites
bool aggregate_virtual_memory_allocation_sites();
Arena* arena() { return _arena; }
// Sorting allocation sites in different orders
// Sort allocation sites in size order
void malloc_sites_to_size_order();
// Sort allocation sites in call site address order
void malloc_sites_to_allocation_site_order();
src/share/vm/services/memBaseline.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File