Text Selection Handlers not updated with the correct position
[framework/web/webkit-efl.git] / TizenScripts / tizen-memorytest / stat.py
1 import os
2 import sys
3 import json
4
5 from util import get_numbers
6
7 def get_label_http(path):
8     domain = path.split('/', 1)[0]
9     tlds = ['com', 'net', 'co.kr']
10     for tld in tlds:
11         if domain.endswith('.' + tld):
12             domain = domain[:-(len(tld)+1)]
13             break
14     label = domain.split('.')[-1]
15     return label
16
17 def get_label_file(path):
18     names = path.split('/', 4)
19     assert names[0] == ''
20     assert names[1] == 'opt'
21     assert names[2] == 'apps'
22     app = names[3]
23     return app
24
25 def get_label(url):
26     url = str(url)
27     scheme, path = url.split('://', 1)
28     if scheme == 'http':
29         return get_label_http(path)
30     if scheme == 'file':
31         return get_label_file(path)
32
33 def read_file(filepath, keys):
34     result = []
35     f = open(filepath)
36     for line in f:
37         data = json.loads(line)
38         url = data['URL']
39         label = get_label(url)
40         values = [data[key] / float(2**20) for key in keys]
41         entry = [label] + values
42         if result and result[-1][0] == label:
43             result[-1] = entry
44         else:
45             result.append(entry)
46     f.close()
47     return result
48
49 def read(dirname, keys):
50     result = []
51     for filepath in get_numbers(dirname):
52         filename = os.path.basename(filepath)
53         data = read_file(filepath, keys)
54         result.append([filename, data])
55     return result
56
57 def write(name, value):
58     print 'var %s = %s;' % (name, json.dumps(value))
59
60 args = sys.argv[1:]
61 if len(args) != 1:
62     print 'Usage: stat.py resultdir'
63     sys.exit()
64 dirname = args[0]
65
66 keys = [
67     'UI Process Private CODE size',
68     'UI Process Private DATA size',
69     'UI Process 3D memory',
70     'UI Process UMP memory',
71     'Web Process Private CODE size',
72     'Web Process Private DATA size',
73     'Web Process 3D memory',
74     'Web Process UMP memory',
75     'Cache used memory',
76     'JSC used memory',
77     'DOM',
78 ]
79
80 labels = [
81     'UI CODE',
82     'UI DATA',
83     'UI 3D',
84     'UI UMP',
85     'Web CODE',
86     'Web DATA',
87     'Web 3D',
88     'Web UMP',
89     'Cache',
90     'JSC',
91     'DOM',
92 ]
93
94 result = read(dirname, keys)
95
96 for build, kvs in result:
97     for kv in kvs:
98         kv[6] -= kv[9] + kv[10] + kv[11]
99
100 write('memory_labels', labels)
101 write('memory', result)