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 184 0.005
fib_iter gen 7 7 902 0.007
loops gen 3 2 301 0.009
fib_recursive gen 10 11 895 0.011
asdl_generated gen 10 10 382 0.026
parse gen 28 24 780 0.036
scoped_resource gen 42 43 1,048 0.040
containers gen 5 7 122 0.042
files gen 4 6 75 0.048
classes gen 2 3 32 0.065
tuple_return_value gen 16 18 228 0.072
gc_stack_roots gen 1 2 11 0.082
length gen 38 41 211 0.182
cartesian gen 86 82 340 0.252
escape gen 100 100 358 0.279
cgi gen 268 263 529 0.506
varargs gen 24 18 31 0.777
control_flow gen 209 161 115 1.819
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
cartesian gen 3.5 3.7 8.5 0.42
asdl_generated gen 3.5 3.7 8.3 0.43
files gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
gc_stack_roots gen 3.7 3.4 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
length gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
modules gen 1 1 12 0.072
gc_stack_roots gen 1 0 9 0.100
asdl_generated gen 1 1 9 0.109
fib_iter gen 1 1 7 0.136
fib_recursive gen 1 0 7 0.140
classes gen 1 0 7 0.148
loops gen 1 1 4 0.235
control_flow gen 2 2 7 0.283
containers gen 7 4 25 0.285
cgi gen 3 6 9 0.333
files gen 4 2 9 0.402
tuple_return_value gen 3 1 7 0.411
parse gen 2 3 4 0.501
scoped_resource gen 6 3 9 0.663
cartesian gen 6 4 9 0.665
varargs gen 16 21 23 0.698
length gen 6 4 7 0.865
escape gen 6 3 6 0.998
pea_hello gen NA NA 8 NA

raw benchmark files