1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#!/usr/bin/env python
import sys
import json
from os.path import (basename, dirname)
run_ids = []
data = {}
for json_file in sys.argv[1:]:
with open(json_file) as file:
run_id = basename(dirname(json_file))
run_ids.append(run_id)
data[run_id] = json.load(file)
results = {}
for run_id in run_ids:
for item in data[run_id]:
lib = item[u'test case'].split('-')[0]
testcase = item[u'test case'].split('-')[1]
avg_time = item[u'average run time (s)']
if testcase not in results.keys():
results[testcase] = {}
if run_id not in results[testcase].keys():
results[testcase][run_id] = {}
results[testcase][run_id][lib] = avg_time
# First header
print("%-12s " %('')),
for run_id in run_ids:
label = run_id.split('-')[1].upper()
print(" ==== %-16s ==== " %(label)),
print("\n"),
# Second header
print("%-12s " % 'test case'),
for run_id in run_ids:
for lib in ['cairo', 'skia']:
print(" %-6s " %(lib)),
print(" %8s %s" %('ca:sk', ' ')),
if len(run_ids) == 2:
print(" %8s %8s" %('ca:ca', 'sk:sk')),
print("\n"),
testcases = results.keys()
testcases.sort()
for testcase in testcases:
print("%-12s " %(testcase)),
for run_id in run_ids:
cairo_value = results[testcase][run_id]['cairo']
skia_value = results[testcase][run_id]['skia']
improvement = 100*(cairo_value - skia_value)/cairo_value
print(" %8f %8f %7.1f%% " %(cairo_value, skia_value, improvement)),
if len(run_ids) == 2:
ca0 = results[testcase][run_ids[0]]['cairo']
ca1 = results[testcase][run_ids[1]]['cairo']
sk0 = results[testcase][run_ids[0]]['skia']
sk1 = results[testcase][run_ids[1]]['skia']
if ca0 == 0:
ca_ca_improvement = 0
else:
ca_ca_improvement = 100*(ca0 - ca1)/ca0
if sk0 == 0:
sk_sk_improvement = 0
else:
sk_sk_improvement = 100*(sk0 - sk1)/sk0
print(" %7.1f%% %7.1f%%" %(ca_ca_improvement, sk_sk_improvement)),
print("\n"),
|