Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.2 KiB
36 lines
1.2 KiB
16 years ago
|
|
||
|
import sys
|
||
|
|
||
|
benchmarks = {}
|
||
|
color_map = {'proto2_compiled': 'FF0000',
|
||
|
'proto2_table': 'FF00FF',
|
||
|
'upb_table_byref': '0000FF',
|
||
|
'upb_table_byval': '00FF00'}
|
||
|
for line in sys.stdin:
|
||
|
name, val = line.split(': ')
|
||
|
components = name.split('_')
|
||
|
benchmark = '_'.join(components[1:3])
|
||
|
variant = '_'.join(components[3:])
|
||
|
if benchmark not in benchmarks:
|
||
|
benchmarks[benchmark] = []
|
||
|
benchmarks[benchmark].append((variant, int(val)))
|
||
|
|
||
|
def encode(x):
|
||
|
digits = (range(ord("A"), ord("Z")+1) + range(ord("a"), ord("z")+1) +
|
||
|
range(ord("0"), ord("9")+1) + [ord("."), ord("-")])
|
||
|
return chr(digits[x / 64]) + chr(digits[x % 64])
|
||
|
|
||
|
for benchmark, values in benchmarks.items():
|
||
|
def cmp(a, b):
|
||
|
return b[1] - a[1]
|
||
|
values.sort(cmp)
|
||
|
variants = [x[0] for x in values]
|
||
|
values = [x[1] for x in values]
|
||
16 years ago
|
scaling = 400
|
||
16 years ago
|
encoded_values = [encode((x * 4096 / scaling) - 1) for x in values]
|
||
|
legend = "chdl=%s" % ("|".join(variants))
|
||
|
colors = "chco=%s" % ("|".join([color_map[x] for x in variants]))
|
||
|
data = "chd=e:%s" % ("".join(encoded_values))
|
||
|
url = "http://chart.apis.google.com/chart?cht=bhs&chs=500x200&chtt=%s+(MB/s)&chxt=x&chxr=0,0,%d&%s" % (benchmark, scaling, "&".join([legend, data, colors]))
|
||
|
print url
|