44 lines
1.1 KiB
Python
Executable File
44 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import matplotlib
|
|
matplotlib.use('Agg')
|
|
|
|
import matplotlib.pyplot as plt
|
|
import json
|
|
import sys
|
|
|
|
stages_to_counters = {}
|
|
stages_to_time = {}
|
|
|
|
if len(sys.argv) != 2:
|
|
print("USAGE: {} <input file>".format(sys.argv[0]))
|
|
sys.exit(1)
|
|
|
|
with open(sys.argv[1]) as fh:
|
|
for line in fh.readlines():
|
|
if "COUNTER" in line:
|
|
json_part = line[line.find("{"):]
|
|
x = json.loads(json_part)
|
|
counter = x['name']
|
|
if not (counter in stages_to_counters):
|
|
stages_to_counters[counter] = []
|
|
stages_to_time[counter] = []
|
|
stages_to_counters[counter].append(x['counts'])
|
|
stages_to_time[counter].append(x['now'])
|
|
|
|
fig, ax = plt.subplots()
|
|
|
|
for stage in stages_to_counters.keys():
|
|
plt.plot(stages_to_time[stage], stages_to_counters[stage], label=stage)
|
|
|
|
plt.xlabel('ms')
|
|
plt.ylabel('count')
|
|
|
|
plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
|
|
ncol=2, mode="expand", borderaxespad=0.)
|
|
|
|
plt.locator_params(axis='x', nbins=10)
|
|
plt.grid(True)
|
|
|
|
plt.savefig("perf.pdf")
|