mycpp Code Generation

Measure the speedup from mycpp, and the resource usage.

Source code: oil/mycpp/examples

User Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
loops gen 2 3 306 0.006
fib_iter gen 7 7 890 0.007
modules gen 2 1 188 0.009
fib_recursive gen 10 9 890 0.011
asdl_generated gen 8 8 399 0.020
parse gen 26 22 782 0.033
scoped_resource gen 45 42 1,049 0.043
classes gen 2 1 32 0.049
containers gen 8 5 123 0.065
gc_stack_roots gen 1 1 11 0.075
tuple_return_value gen 18 14 196 0.093
files gen 7 6 75 0.097
length gen 40 41 210 0.192
cartesian gen 85 83 358 0.236
escape gen 99 97 358 0.276
cgi gen 266 267 535 0.496
varargs gen 17 19 21 0.811
control_flow gen 209 161 117 1.776
pea_hello gen NA NA 11 NA

Max Resident Set Size (MB)

Lower ratios are better. We use MB (powers of 10), not MiB (powers of 2).

example name gen C++ C++-Souffle Python C++ : Python
classes gen 4.5 4.5 12.3 0.36
gc_stack_roots gen 3.4 3.5 8.5 0.40
parse gen 3.8 3.8 9.1 0.42
control_flow gen 3.7 3.8 8.5 0.43
files gen 3.7 3.9 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
asdl_generated gen 3.8 3.7 8.4 0.45
fib_iter gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
files gen 0 1 9 0.000
modules gen 0 1 9 0.000
fib_recursive gen 1 2 10 0.098
gc_stack_roots gen 1 1 8 0.103
fib_iter gen 1 1 7 0.135
tuple_return_value gen 1 4 6 0.169
containers gen 4 5 23 0.173
classes gen 2 2 7 0.222
asdl_generated gen 3 3 8 0.372
control_flow gen 2 3 5 0.403
parse gen 4 5 9 0.448
loops gen 2 0 4 0.458
length gen 4 5 7 0.564
scoped_resource gen 4 4 7 0.569
varargs gen 22 20 33 0.668
cartesian gen 7 4 8 0.872
cgi gen 5 2 5 0.998
escape gen 7 6 5 1.395
pea_hello gen NA NA 8 NA

raw benchmark files