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
fib_iter gen 5 8 893 0.005
loops gen 3 2 311 0.009
modules gen 2 1 186 0.009
fib_recursive gen 10 9 899 0.011
asdl_generated gen 9 9 391 0.022
parse gen 28 26 815 0.035
scoped_resource gen 42 41 1,036 0.041
files gen 5 8 77 0.067
classes gen 2 3 29 0.072
containers gen 10 6 117 0.083
tuple_return_value gen 17 18 195 0.089
gc_stack_roots gen 2 0 11 0.150
length gen 41 38 213 0.193
cartesian gen 83 78 336 0.246
escape gen 95 94 360 0.264
cgi gen 266 265 526 0.506
varargs gen 19 13 21 0.876
control_flow gen 208 163 118 1.770
pea_hello gen NA NA 10 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
asdl_generated gen 3.7 3.7 8.5 0.43
control_flow gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
cartesian gen 3.7 3.8 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
loops gen 3.7 3.9 8.4 0.44
length gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.7 8.3 0.46
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 2 7 0.000
modules gen 0 1 10 0.000
containers gen 2 5 26 0.083
classes gen 1 0 10 0.104
fib_recursive gen 1 2 8 0.123
parse gen 2 1 11 0.184
loops gen 1 1 5 0.185
asdl_generated gen 2 3 9 0.238
tuple_return_value gen 2 0 7 0.275
fib_iter gen 3 0 10 0.284
control_flow gen 2 1 7 0.287
files gen 2 0 7 0.297
cgi gen 4 3 9 0.445
length gen 4 8 8 0.498
scoped_resource gen 5 5 8 0.628
varargs gen 21 26 31 0.656
cartesian gen 10 8 10 0.994
escape gen 11 8 5 2.181
pea_hello gen NA NA 8 NA

raw benchmark files