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
classes gen 0 2 31 0.000
modules gen 1 2 193 0.004
loops gen 2 3 302 0.006
fib_iter gen 6 6 940 0.006
fib_recursive gen 10 10 885 0.011
asdl_generated gen 11 11 383 0.028
parse gen 29 24 764 0.038
scoped_resource gen 45 43 1,084 0.041
containers gen 8 5 117 0.072
tuple_return_value gen 18 14 195 0.093
files gen 7 5 77 0.093
gc_stack_roots gen 2 2 10 0.169
length gen 39 40 216 0.182
cartesian gen 82 79 332 0.247
escape gen 99 96 367 0.271
cgi gen 267 266 527 0.506
varargs gen 21 21 24 0.878
control_flow gen 209 162 116 1.805
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.5 0.36
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
length gen 3.5 3.8 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.9 8.4 0.44
control_flow 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
cgi gen 3.8 3.5 8.4 0.45
fib_iter gen 3.8 3.7 8.4 0.45
files gen 3.8 3.9 8.4 0.45
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.6 5.4 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
asdl_generated gen 0 0 8 0.000
files gen 0 3 7 0.000
gc_stack_roots gen 0 0 9 0.000
parse gen 1 3 12 0.084
containers gen 3 5 24 0.133
fib_recursive gen 1 1 7 0.140
tuple_return_value gen 1 4 6 0.168
modules gen 1 0 5 0.168
control_flow gen 2 1 9 0.223
fib_iter gen 2 2 5 0.402
loops gen 2 0 4 0.455
cgi gen 3 2 6 0.501
classes gen 3 1 6 0.503
varargs gen 18 18 28 0.645
scoped_resource gen 3 2 4 0.746
length gen 6 5 7 0.842
escape gen 7 7 5 1.402
cartesian gen 10 7 6 1.664
pea_hello gen NA NA 5 NA

raw benchmark files