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 1 1 191 0.005
fib_iter gen 7 7 902 0.007
loops gen 2 2 297 0.008
fib_recursive gen 10 9 892 0.011
asdl_generated gen 11 9 389 0.028
parse gen 30 25 784 0.038
scoped_resource gen 44 42 1,057 0.042
files gen 5 5 73 0.062
containers gen 8 5 124 0.069
classes gen 2 3 27 0.077
tuple_return_value gen 17 15 189 0.092
gc_stack_roots gen 1 0 8 0.107
length gen 40 44 213 0.186
cartesian gen 86 78 335 0.258
escape gen 101 98 361 0.281
cgi gen 270 268 528 0.511
varargs gen 21 21 27 0.777
control_flow gen 209 162 114 1.838
pea_hello gen NA NA 13 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
parse gen 3.7 3.9 9.1 0.40
escape gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
cgi gen 3.7 3.7 8.5 0.43
length gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 48.9 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
asdl_generated gen 0 2 7 0.000
cgi gen 0 1 6 0.000
parse gen 0 2 10 0.000
gc_stack_roots gen 1 2 11 0.078
classes gen 1 1 11 0.094
modules gen 1 1 8 0.109
fib_recursive gen 1 2 9 0.109
loops gen 1 1 10 0.121
fib_iter gen 1 0 7 0.136
containers gen 3 5 21 0.152
tuple_return_value gen 2 4 9 0.214
files gen 3 3 10 0.276
control_flow gen 2 1 7 0.286
scoped_resource gen 3 3 9 0.336
length gen 5 4 8 0.619
varargs gen 18 19 25 0.720
cartesian gen 7 8 9 0.781
escape gen 5 6 5 0.994
pea_hello gen NA NA 5 NA

raw benchmark files