6995781: Native Memory Tracking (Phase 1)

7151532: DCmd for hotspot native memory tracking

Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd

Reviewed-by: acorn, coleenp, fparain
This commit is contained in:
Zhengyu Gu 2012-06-28 17:03:16 -04:00
parent 8e42425c92
commit a39b17624a
315 changed files with 7245 additions and 1477 deletions

View file

@ -203,21 +203,21 @@ void GenMarkSweep::allocate_stacks() {
#ifdef VALIDATE_MARK_SWEEP
if (ValidateMarkSweep) {
_root_refs_stack = new (ResourceObj::C_HEAP) GrowableArray<void*>(100, true);
_other_refs_stack = new (ResourceObj::C_HEAP) GrowableArray<void*>(100, true);
_adjusted_pointers = new (ResourceObj::C_HEAP) GrowableArray<void*>(100, true);
_live_oops = new (ResourceObj::C_HEAP) GrowableArray<oop>(100, true);
_live_oops_moved_to = new (ResourceObj::C_HEAP) GrowableArray<oop>(100, true);
_live_oops_size = new (ResourceObj::C_HEAP) GrowableArray<size_t>(100, true);
_root_refs_stack = new (ResourceObj::C_HEAP, mtGC) GrowableArray<void*>(100, true);
_other_refs_stack = new (ResourceObj::C_HEAP, mtGC) GrowableArray<void*>(100, true);
_adjusted_pointers = new (ResourceObj::C_HEAP, mtGC) GrowableArray<void*>(100, true);
_live_oops = new (ResourceObj::C_HEAP, mtGC) GrowableArray<oop>(100, true);
_live_oops_moved_to = new (ResourceObj::C_HEAP, mtGC) GrowableArray<oop>(100, true);
_live_oops_size = new (ResourceObj::C_HEAP, mtGC) GrowableArray<size_t>(100, true);
}
if (RecordMarkSweepCompaction) {
if (_cur_gc_live_oops == NULL) {
_cur_gc_live_oops = new(ResourceObj::C_HEAP) GrowableArray<HeapWord*>(100, true);
_cur_gc_live_oops_moved_to = new(ResourceObj::C_HEAP) GrowableArray<HeapWord*>(100, true);
_cur_gc_live_oops_size = new(ResourceObj::C_HEAP) GrowableArray<size_t>(100, true);
_last_gc_live_oops = new(ResourceObj::C_HEAP) GrowableArray<HeapWord*>(100, true);
_last_gc_live_oops_moved_to = new(ResourceObj::C_HEAP) GrowableArray<HeapWord*>(100, true);
_last_gc_live_oops_size = new(ResourceObj::C_HEAP) GrowableArray<size_t>(100, true);
_cur_gc_live_oops = new(ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(100, true);
_cur_gc_live_oops_moved_to = new(ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(100, true);
_cur_gc_live_oops_size = new(ResourceObj::C_HEAP, mtGC) GrowableArray<size_t>(100, true);
_last_gc_live_oops = new(ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(100, true);
_last_gc_live_oops_moved_to = new(ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(100, true);
_last_gc_live_oops_size = new(ResourceObj::C_HEAP, mtGC) GrowableArray<size_t>(100, true);
} else {
_cur_gc_live_oops->clear();
_cur_gc_live_oops_moved_to->clear();