blob: 3b51731399df288ba37b7240913152e3a1e4649d [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001# Copyright 2015 the V8 project authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5#
6# Common code for parsing --trace-gc-nvp output.
7#
8
9
10from __future__ import with_statement
11import re
12
13def split_nvp(s):
14 t = {}
15 for (name, value) in re.findall(r"([._\w]+)=([-\w]+(?:\.[0-9]+)?)", s):
16 try:
17 t[name] = float(value)
18 except ValueError:
19 t[name] = value
20
21 return t
22
23
24def parse_gc_trace(input):
25 trace = []
26 with open(input) as f:
27 for line in f:
28 info = split_nvp(line)
29 if info and 'pause' in info and info['pause'] > 0:
30 info['i'] = len(trace)
31 trace.append(info)
32 return trace