Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: tools/gc-nvp-trace-processor.py

Issue 7067022: Enhance gc-nvp-trace-processor.py: (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2010 the V8 project authors. All rights reserved. 3 # Copyright 2010 the V8 project authors. All rights reserved.
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 script = generate_script_and_datafile(plot, trace, '~datafile', outfilename) 209 script = generate_script_and_datafile(plot, trace, '~datafile', outfilename)
210 print 'Plotting %s...' % outfilename 210 print 'Plotting %s...' % outfilename
211 gnuplot(script) 211 gnuplot(script)
212 212
213 return charts 213 return charts
214 214
215 def reclaimed_bytes(row): 215 def reclaimed_bytes(row):
216 return row['total_size_before'] - row['total_size_after'] 216 return row['total_size_before'] - row['total_size_after']
217 217
218 def other_scope(r): 218 def other_scope(r):
219 return r['pause'] - r['mark'] - r['sweep'] - r['compact'] 219 if r['gc'] == 's':
220 # there is no 'other' scope for scavenging collections.
221 return 0
222 return r['pause'] - r['mark'] - r['sweep'] - r['compact'] - r['external']
223
224 def scavenge_scope(r):
225 if r['gc'] == 's':
226 return r['pause'] - r['external']
227 return 0
220 228
221 plots = [ 229 plots = [
222 [ 230 [
223 Set('style fill solid 0.5 noborder'), 231 Set('style fill solid 0.5 noborder'),
224 Set('style histogram rowstacked'), 232 Set('style histogram rowstacked'),
225 Set('style data histograms'), 233 Set('style data histograms'),
226 Plot(Item('Marking', 'mark', lc = 'purple'), 234 Plot(Item('Scavenge', scavenge_scope, lc = 'green'),
235 Item('Marking', 'mark', lc = 'purple'),
227 Item('Sweep', 'sweep', lc = 'blue'), 236 Item('Sweep', 'sweep', lc = 'blue'),
228 Item('Compaction', 'compact', lc = 'red'), 237 Item('Compaction', 'compact', lc = 'red'),
238 Item('External', 'external', lc = '#489D43'),
229 Item('Other', other_scope, lc = 'grey')) 239 Item('Other', other_scope, lc = 'grey'))
230 ], 240 ],
231 [ 241 [
232 Set('style histogram rowstacked'), 242 Set('style histogram rowstacked'),
233 Set('style data histograms'), 243 Set('style data histograms'),
234 Plot(Item('Heap Size (before GC)', 'total_size_before', x1y2, 244 Plot(Item('Heap Size (before GC)', 'total_size_before', x1y2,
235 fs = 'solid 0.4 noborder', 245 fs = 'solid 0.4 noborder',
236 lc = 'green'), 246 lc = 'green'),
237 Item('Total holes (after GC)', 'holes_size_before', x1y2, 247 Item('Total holes (after GC)', 'holes_size_before', x1y2,
238 fs = 'solid 0.4 noborder', 248 fs = 'solid 0.4 noborder',
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 out.write('<table>') 317 out.write('<table>')
308 out.write('<tr><td>Phase</td><td>Count</td><td>Time (ms)</td>') 318 out.write('<tr><td>Phase</td><td>Count</td><td>Time (ms)</td>')
309 out.write('<td>Max</td><td>Avg</td></tr>') 319 out.write('<td>Max</td><td>Avg</td></tr>')
310 stats(out, 'Total in GC', trace, 'pause') 320 stats(out, 'Total in GC', trace, 'pause')
311 stats(out, 'Scavenge', scavenges, 'pause') 321 stats(out, 'Scavenge', scavenges, 'pause')
312 stats(out, 'MarkSweep', marksweeps, 'pause') 322 stats(out, 'MarkSweep', marksweeps, 'pause')
313 stats(out, 'MarkCompact', markcompacts, 'pause') 323 stats(out, 'MarkCompact', markcompacts, 'pause')
314 stats(out, 'Mark', filter(lambda r: r['mark'] != 0, trace), 'mark') 324 stats(out, 'Mark', filter(lambda r: r['mark'] != 0, trace), 'mark')
315 stats(out, 'Sweep', filter(lambda r: r['sweep'] != 0, trace), 'sweep') 325 stats(out, 'Sweep', filter(lambda r: r['sweep'] != 0, trace), 'sweep')
316 stats(out, 'Compact', filter(lambda r: r['compact'] != 0, trace), 'compact') 326 stats(out, 'Compact', filter(lambda r: r['compact'] != 0, trace), 'compact')
327 stats(out,
328 'External',
329 filter(lambda r: r['external'] != 0, trace),
330 'external')
317 out.write('</table>') 331 out.write('</table>')
318 for chart in charts: 332 for chart in charts:
319 out.write('<img src="%s">' % chart) 333 out.write('<img src="%s">' % chart)
320 out.write('</body></html>') 334 out.write('</body></html>')
321 335
322 print "%s generated." % (filename + '.html') 336 print "%s generated." % (filename + '.html')
323 337
324 if len(sys.argv) != 2: 338 if len(sys.argv) != 2:
325 print "Usage: %s <GC-trace-filename>" % sys.argv[0] 339 print "Usage: %s <GC-trace-filename>" % sys.argv[0]
326 sys.exit(1) 340 sys.exit(1)
327 341
328 process_trace(sys.argv[1]) 342 process_trace(sys.argv[1])
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698