Index: tools/gc_nvp_common.py |
diff --git a/tools/gc_nvp_common.py b/tools/gc_nvp_common.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7a9ad1c4bc85a6d5059651618283b5df07545068 |
--- /dev/null |
+++ b/tools/gc_nvp_common.py |
@@ -0,0 +1,32 @@ |
+# Copyright 2015 the V8 project authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+# |
+# Common code for parsing --trace-gc-nvp output. |
+# |
+ |
+ |
+from __future__ import with_statement |
+import re |
+ |
+def split_nvp(s): |
+ t = {} |
+ for (name, value) in re.findall(r"(\w+)=([-\w]+)", s): |
+ try: |
+ t[name] = float(value) |
+ except ValueError: |
+ t[name] = value |
+ |
+ return t |
+ |
+ |
+def parse_gc_trace(input): |
+ trace = [] |
+ with open(input) as f: |
+ for line in f: |
+ info = split_nvp(line) |
+ if info and 'pause' in info and info['pause'] > 0: |
+ info['i'] = len(trace) |
+ trace.append(info) |
+ return trace |