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
fib_recursive gen 7 11 896 0.008
fib_iter gen 8 8 889 0.008
modules gen 2 2 189 0.010
loops gen 4 3 302 0.012
asdl_generated gen 11 5 402 0.027
parse gen 31 27 757 0.042
scoped_resource gen 47 45 1,031 0.046
files gen 4 7 77 0.047
classes gen 3 3 34 0.095
tuple_return_value gen 19 18 195 0.097
containers gen 12 0 113 0.103
gc_stack_roots gen 2 2 12 0.148
length gen 37 35 212 0.174
cartesian gen 86 82 350 0.246
escape gen 101 91 363 0.278
cgi gen 268 270 529 0.506
varargs gen 27 19 28 0.963
control_flow gen 203 162 118 1.722
pea_hello gen NA NA 15 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.3 0.36
escape gen 3.5 3.7 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.3 0.43
cgi gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
length gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
files gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.9 8.4 0.47
containers gen 28.6 28.6 49.1 0.58
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
asdl_generated gen 0 5 4 0.000
cgi gen 0 0 8 0.000
classes gen 0 0 4 0.000
fib_iter gen 0 0 8 0.000
gc_stack_roots gen 0 0 8 0.000
loops gen 0 0 8 0.000
modules gen 0 0 8 0.000
parse gen 0 0 12 0.000
scoped_resource gen 0 0 4 0.000
tuple_return_value gen 0 0 12 0.000
containers gen 8 14 35 0.222
fib_recursive gen 4 0 12 0.299
files gen 4 0 8 0.471
cartesian gen 4 4 8 0.511
varargs gen 38 46 52 0.741
escape gen 4 12 4 0.974
control_flow gen 4 0 4 0.979
length gen 8 12 4 2.044
pea_hello gen NA NA 4 NA

raw benchmark files