src/share/vm/services/memReporter.cpp

changeset 5270
cd2118b62475
parent 4668
3c9db54c2660
child 5325
8cff1de240de
     1.1 --- a/src/share/vm/services/memReporter.cpp	Sat Jun 15 13:17:36 2013 +0200
     1.2 +++ b/src/share/vm/services/memReporter.cpp	Mon Jun 10 10:45:19 2013 -0400
     1.3 @@ -190,17 +190,18 @@
     1.4    while (cur_malloc_callsite != NULL || prev_malloc_callsite != NULL) {
     1.5      if (prev_malloc_callsite == NULL ||
     1.6          cur_malloc_callsite->addr() < prev_malloc_callsite->addr()) {
     1.7 +      // this is a new callsite
     1.8        _outputer.diff_malloc_callsite(cur_malloc_callsite->addr(),
     1.9          amount_in_current_scale(cur_malloc_callsite->amount()),
    1.10          cur_malloc_callsite->count(),
    1.11          diff_in_current_scale(cur_malloc_callsite->amount(), 0),
    1.12          diff(cur_malloc_callsite->count(), 0));
    1.13        cur_malloc_callsite = (MallocCallsitePointer*)cur_malloc_itr.next();
    1.14 -    } else if (prev_malloc_callsite == NULL ||
    1.15 +    } else if (cur_malloc_callsite == NULL ||
    1.16                 cur_malloc_callsite->addr() > prev_malloc_callsite->addr()) {
    1.17 -      _outputer.diff_malloc_callsite(cur_malloc_callsite->addr(),
    1.18 -        amount_in_current_scale(prev_malloc_callsite->amount()),
    1.19 -        prev_malloc_callsite->count(),
    1.20 +      // this callsite is already gone
    1.21 +      _outputer.diff_malloc_callsite(prev_malloc_callsite->addr(),
    1.22 +        amount_in_current_scale(0), 0,
    1.23          diff_in_current_scale(0, prev_malloc_callsite->amount()),
    1.24          diff(0, prev_malloc_callsite->count()));
    1.25        prev_malloc_callsite = (MallocCallsitePointer*)prev_malloc_itr.next();
    1.26 @@ -222,6 +223,7 @@
    1.27    VMCallsitePointer*          prev_vm_callsite = (VMCallsitePointer*)prev_vm_itr.current();
    1.28    while (cur_vm_callsite != NULL || prev_vm_callsite != NULL) {
    1.29      if (prev_vm_callsite == NULL || cur_vm_callsite->addr() < prev_vm_callsite->addr()) {
    1.30 +      // this is a new callsite
    1.31        _outputer.diff_virtual_memory_callsite(cur_vm_callsite->addr(),
    1.32          amount_in_current_scale(cur_vm_callsite->reserved_amount()),
    1.33          amount_in_current_scale(cur_vm_callsite->committed_amount()),
    1.34 @@ -229,9 +231,10 @@
    1.35          diff_in_current_scale(cur_vm_callsite->committed_amount(), 0));
    1.36        cur_vm_callsite = (VMCallsitePointer*)cur_vm_itr.next();
    1.37      } else if (cur_vm_callsite == NULL || cur_vm_callsite->addr() > prev_vm_callsite->addr()) {
    1.38 +      // this callsite is already gone
    1.39        _outputer.diff_virtual_memory_callsite(prev_vm_callsite->addr(),
    1.40 -        amount_in_current_scale(prev_vm_callsite->reserved_amount()),
    1.41 -        amount_in_current_scale(prev_vm_callsite->committed_amount()),
    1.42 +        amount_in_current_scale(0),
    1.43 +        amount_in_current_scale(0),
    1.44          diff_in_current_scale(0, prev_vm_callsite->reserved_amount()),
    1.45          diff_in_current_scale(0, prev_vm_callsite->committed_amount()));
    1.46        prev_vm_callsite = (VMCallsitePointer*)prev_vm_itr.next();

mercurial