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 1 10 0.000
modules gen 1 1 190 0.005
fib_iter gen 7 6 900 0.008
fib_recursive gen 11 10 894 0.012
loops gen 4 2 299 0.013
asdl_generated gen 9 9 390 0.024
parse gen 30 24 774 0.038
scoped_resource gen 47 44 1,031 0.045
containers gen 7 7 119 0.062
tuple_return_value gen 18 18 195 0.094
files gen 8 6 78 0.096
classes gen 3 1 29 0.114
length gen 42 41 216 0.193
cartesian gen 86 82 332 0.260
escape gen 106 97 358 0.295
cgi gen 269 269 530 0.507
varargs gen 22 15 26 0.856
control_flow gen 210 161 116 1.815
pea_hello gen NA NA 11 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.2 0.37
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.5 8.5 0.42
fib_recursive gen 3.5 3.9 8.4 0.42
modules gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.7 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
fib_iter gen 3.7 3.5 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
length gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
files gen 3.9 3.8 8.4 0.47
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
classes gen 0 2 11 0.000
fib_recursive gen 0 1 8 0.000
files gen 0 1 7 0.000
parse gen 1 3 12 0.085
loops gen 1 1 9 0.107
fib_iter gen 1 2 9 0.108
modules gen 1 1 8 0.118
control_flow gen 1 2 8 0.125
scoped_resource gen 2 2 13 0.156
containers gen 5 4 30 0.177
gc_stack_roots gen 2 1 10 0.183
asdl_generated gen 2 2 11 0.185
cgi gen 2 7 9 0.222
tuple_return_value gen 2 1 6 0.339
escape gen 3 8 5 0.604
length gen 4 5 6 0.661
varargs gen 19 26 29 0.663
cartesian gen 6 5 9 0.669
pea_hello gen NA NA 9 NA

raw benchmark files