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
gc_stack_roots gen 0 2 13 0.000
loops gen 2 2 303 0.006
fib_iter gen 7 8 916 0.007
modules gen 2 0 189 0.009
fib_recursive gen 11 9 891 0.012
asdl_generated gen 9 9 391 0.022
parse gen 29 26 795 0.037
classes gen 1 2 27 0.039
scoped_resource gen 46 41 1,070 0.043
files gen 4 7 75 0.055
containers gen 10 6 118 0.084
tuple_return_value gen 18 16 194 0.093
length gen 42 44 213 0.199
cartesian gen 79 79 334 0.238
escape gen 97 97 394 0.246
cgi gen 269 268 528 0.509
varargs gen 17 20 24 0.725
control_flow gen 208 161 117 1.774
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.2 0.35
cgi gen 3.5 3.7 8.5 0.42
tuple_return_value gen 3.5 3.8 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
escape gen 3.7 3.5 8.5 0.43
files gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
modules gen 3.8 3.8 8.7 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.4 0.47
containers gen 28.8 28.9 49.2 0.58
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 0 2 5 0.000
modules gen 0 2 10 0.000
containers gen 2 5 26 0.075
parse gen 1 1 10 0.101
fib_iter gen 1 0 9 0.105
cgi gen 1 8 7 0.143
classes gen 2 1 12 0.176
gc_stack_roots gen 2 0 6 0.278
scoped_resource gen 2 4 7 0.285
tuple_return_value gen 2 2 6 0.333
loops gen 2 1 5 0.374
asdl_generated gen 2 2 5 0.389
length gen 3 3 7 0.433
files gen 3 1 7 0.441
varargs gen 22 20 29 0.741
control_flow gen 3 1 4 0.745
cartesian gen 14 8 7 2.009
escape gen 11 6 5 2.196
pea_hello gen NA NA 4 NA

raw benchmark files