[pypy-commit] extradoc extradoc: deal with many log files, write csv
cfbolz
noreply at buildbot.pypy.org
Fri Jul 27 11:31:57 CEST 2012
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: extradoc
Changeset: r4385:bdb4c46118d2
Date: 2012-07-27 10:26 +0200
http://bitbucket.org/pypy/extradoc/changeset/bdb4c46118d2/
Log: deal with many log files, write csv
diff --git a/talk/vmil2012/tool/rdatasize.py b/talk/vmil2012/tool/rdatasize.py
--- a/talk/vmil2012/tool/rdatasize.py
+++ b/talk/vmil2012/tool/rdatasize.py
@@ -1,6 +1,10 @@
+import csv
+import os
import sys
from collections import defaultdict
+from backenddata import collect_logfiles
+
word_to_kib = 1024 / 8. # 64 bit
numberings_per_word = 2/8. # two bytes
@@ -88,18 +92,42 @@
def main(argv):
- infile = argv[1]
- results = compute_numbers(infile)
- print "storages:", results['num_storages']
- print "snapshots: %sKiB vs %sKiB" % (results["kib_snapshots"], results["naive_kib_snapshots"])
- print "numberings: %sKiB vs %sKiB" % (results["kib_numbering"], results["naive_kib_numbering"])
- print "optimal: %s" % (results['optimal_numbering'] / word_to_kib)
- print "consts: %sKiB vs %sKiB" % (results["kib_consts"], results["naive_kib_consts"])
- print "virtuals: %sKiB vs %sKiB" % (results["kib_virtuals"], results["naive_kib_virtuals"])
- print "number virtuals: %i vs %i" % (results['num_virtuals'], results['naive_num_virtuals'])
- print "setfields: %sKiB" % (results["kib_setfields"], )
- print "--"
- print "total: %sKiB vs %sKiB" % (results["total"], results["naive_total"])
+ import optparse
+ parser = optparse.OptionParser(usage="%prog logdir_or_file")
+
+ options, args = parser.parse_args()
+ if len(args) != 1:
+ parser.print_help()
+ sys.exit(2)
+ return
+ path = args[0]
+ if os.path.isdir(path):
+ dirname = path
+ else:
+ dirname = os.path.dirname(path)
+ files = collect_logfiles(path)
+ with file("logs/resume_summary.csv", "w") as f:
+ csv_writer = csv.writer(f)
+ row = ["exe", "bench", "total resume data size", "naive resume data size"]
+ csv_writer.writerow(row)
+
+ for exe, bench, infile in files:
+ results = compute_numbers(os.path.join(dirname, infile))
+ row = [exe, bench, results['total'], results['naive_total']]
+ csv_writer.writerow(row)
+
+ print "=============================="
+ print bench
+ print "storages:", results['num_storages']
+ print "snapshots: %sKiB vs %sKiB" % (results["kib_snapshots"], results["naive_kib_snapshots"])
+ print "numberings: %sKiB vs %sKiB" % (results["kib_numbering"], results["naive_kib_numbering"])
+ print "optimal: %s" % (results['optimal_numbering'] / word_to_kib)
+ print "consts: %sKiB vs %sKiB" % (results["kib_consts"], results["naive_kib_consts"])
+ print "virtuals: %sKiB vs %sKiB" % (results["kib_virtuals"], results["naive_kib_virtuals"])
+ print "number virtuals: %i vs %i" % (results['num_virtuals'], results['naive_num_virtuals'])
+ print "setfields: %sKiB" % (results["kib_setfields"], )
+ print "--"
+ print "total: %sKiB vs %sKiB" % (results["total"], results["naive_total"])
if __name__ == '__main__':
More information about the pypy-commit
mailing list