--- /dev/null
+#!/usr/bin/env python2
+#
+# Analyze allocator logs and write total-bytes-in-use after every
+# operation to stdout. The output can be gnuplotted as:
+#
+# $ python log2gnuplot.py </tmp/duk-alloc-log.txt >/tmp/output.txt
+# $ gnuplot
+# > plot "output.txt" with lines
+#
+
+import os
+import sys
+
+def main():
+ allocated = 0
+
+ for line in sys.stdin:
+ line = line.strip()
+ parts = line.split(' ')
+
+ # A ptr/NULL/FAIL size
+ # F ptr/NULL size
+ # R ptr/NULL oldsize ptr/NULL/FAIL newsize
+
+ # Note: ajduk doesn't log oldsize (uses -1 instead)
+
+ if parts[0] == 'A':
+ if parts[1] != 'NULL' and parts[1] != 'FAIL':
+ allocated += long(parts[2])
+ elif parts[0] == 'F':
+ allocated -= long(parts[2])
+ elif parts[0] == 'R':
+ allocated -= long(parts[2])
+ if parts[3] != 'NULL' and parts[3] != 'FAIL':
+ allocated += long(parts[4])
+ print(allocated)
+
+ print(allocated)
+
+if __name__ == '__main__':
+ main()