Index: tools/gc-nvp-trace-processor.py |
diff --git a/tools/gc-nvp-trace-processor.py b/tools/gc-nvp-trace-processor.py |
index 2c173ab56ee456d4f27cd08bf7810eeef4501468..511ab2bcdf8b2d0586e4ff64adf56b396b0ea79b 100755 |
--- a/tools/gc-nvp-trace-processor.py |
+++ b/tools/gc-nvp-trace-processor.py |
@@ -216,16 +216,26 @@ def reclaimed_bytes(row): |
return row['total_size_before'] - row['total_size_after'] |
def other_scope(r): |
- return r['pause'] - r['mark'] - r['sweep'] - r['compact'] |
+ if r['gc'] == 's': |
+ # there is no 'other' scope for scavenging collections. |
+ return 0 |
+ return r['pause'] - r['mark'] - r['sweep'] - r['compact'] - r['external'] |
+ |
+def scavenge_scope(r): |
+ if r['gc'] == 's': |
+ return r['pause'] - r['external'] |
+ return 0 |
plots = [ |
[ |
Set('style fill solid 0.5 noborder'), |
Set('style histogram rowstacked'), |
Set('style data histograms'), |
- Plot(Item('Marking', 'mark', lc = 'purple'), |
+ Plot(Item('Scavenge', scavenge_scope, lc = 'green'), |
+ Item('Marking', 'mark', lc = 'purple'), |
Item('Sweep', 'sweep', lc = 'blue'), |
Item('Compaction', 'compact', lc = 'red'), |
+ Item('External', 'external', lc = '#489D43'), |
Item('Other', other_scope, lc = 'grey')) |
], |
[ |
@@ -314,6 +324,10 @@ def process_trace(filename): |
stats(out, 'Mark', filter(lambda r: r['mark'] != 0, trace), 'mark') |
stats(out, 'Sweep', filter(lambda r: r['sweep'] != 0, trace), 'sweep') |
stats(out, 'Compact', filter(lambda r: r['compact'] != 0, trace), 'compact') |
+ stats(out, |
+ 'External', |
+ filter(lambda r: r['external'] != 0, trace), |
+ 'external') |
out.write('</table>') |
for chart in charts: |
out.write('<img src="%s">' % chart) |