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 0 13 0.000
fib_iter gen 7 7 899 0.007
modules gen 2 0 190 0.009
fib_recursive gen 9 9 891 0.010
loops gen 4 3 303 0.012
asdl_generated gen 10 9 384 0.025
classes gen 1 2 30 0.026
parse gen 28 26 766 0.037
scoped_resource gen 44 44 1,039 0.043
containers gen 7 6 114 0.059
tuple_return_value gen 18 17 198 0.092
files gen 7 7 76 0.095
length gen 40 41 211 0.188
cartesian gen 84 80 350 0.240
escape gen 99 97 366 0.271
cgi gen 269 265 521 0.517
varargs gen 21 24 25 0.839
control_flow gen 210 162 117 1.791
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.3 12.5 0.36
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
loops gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.7 9.0 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
length 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.8 49.1 0.59
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
control_flow gen 0 1 5 0.000
files gen 0 1 8 0.000
loops gen 0 0 6 0.000
modules gen 0 2 6 0.000
cgi gen 1 3 10 0.100
fib_iter gen 1 0 9 0.105
asdl_generated gen 1 2 9 0.118
tuple_return_value gen 1 1 8 0.127
containers gen 5 5 29 0.167
parse gen 2 1 9 0.223
classes gen 2 1 8 0.294
fib_recursive gen 2 2 6 0.327
gc_stack_roots gen 2 2 5 0.341
scoped_resource gen 4 2 8 0.502
varargs gen 19 15 29 0.654
escape gen 6 6 9 0.668
length gen 5 4 7 0.706
cartesian gen 8 7 8 1.001
pea_hello gen NA NA 5 NA

raw benchmark files