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
modules gen 0 1 200 0.000
loops gen 2 1 303 0.006
fib_iter gen 7 6 939 0.007
fib_recursive gen 9 10 890 0.010
asdl_generated gen 8 8 400 0.021
parse gen 29 22 762 0.038
scoped_resource gen 44 42 1,027 0.043
containers gen 7 6 125 0.059
gc_stack_roots gen 1 0 14 0.063
classes gen 2 2 27 0.069
files gen 6 6 75 0.082
tuple_return_value gen 17 16 194 0.089
length gen 40 38 212 0.189
cartesian gen 84 79 339 0.248
escape gen 99 102 363 0.274
cgi gen 269 264 528 0.509
varargs gen 23 14 13 1.772
control_flow gen 207 161 115 1.805
pea_hello gen NA NA 14 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.3 4.5 12.5 0.35
cartesian gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.7 9.1 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
parse gen 1 5 9 0.112
cgi gen 1 4 8 0.125
files gen 1 1 7 0.149
fib_iter gen 1 2 6 0.157
gc_stack_roots gen 1 2 5 0.163
classes gen 2 1 11 0.175
fib_recursive gen 2 1 10 0.195
modules gen 2 1 7 0.248
containers gen 4 5 17 0.249
asdl_generated gen 2 3 8 0.266
control_flow gen 2 1 7 0.285
tuple_return_value gen 2 2 5 0.404
varargs gen 16 26 39 0.411
loops gen 2 2 4 0.457
scoped_resource gen 4 3 7 0.569
length gen 4 7 7 0.571
escape gen 6 6 6 0.991
cartesian gen 6 7 5 1.189
pea_hello gen NA NA 3 NA

raw benchmark files