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 0 1 247 0.000
fib_iter gen 8 8 903 0.008
fib_recursive gen 9 10 889 0.010
loops gen 4 2 301 0.012
asdl_generated gen 9 8 388 0.022
classes gen 1 2 30 0.034
parse gen 29 24 766 0.038
containers gen 5 5 121 0.040
scoped_resource gen 44 44 1,070 0.041
files gen 6 8 75 0.082
gc_stack_roots gen 1 2 10 0.085
tuple_return_value gen 19 17 195 0.096
length gen 41 43 209 0.195
cartesian gen 86 82 351 0.246
escape gen 98 97 367 0.268
cgi gen 268 268 523 0.512
varargs gen 19 11 26 0.735
control_flow gen 207 162 122 1.690
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.3 12.3 0.36
asdl_generated gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
scoped_resource gen 3.5 3.7 8.5 0.42
files gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
fib_iter gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 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
fib_iter gen 0 0 7 0.000
loops gen 0 1 9 0.000
gc_stack_roots gen 1 0 9 0.095
files gen 1 0 8 0.128
parse gen 1 3 7 0.145
tuple_return_value gen 1 1 6 0.164
control_flow gen 1 1 5 0.199
fib_recursive gen 2 1 9 0.217
modules gen 2 1 7 0.241
asdl_generated gen 2 3 7 0.277
cgi gen 2 3 7 0.286
classes gen 2 1 7 0.289
containers gen 7 5 21 0.322
cartesian gen 5 5 10 0.501
length gen 4 3 7 0.568
scoped_resource gen 4 3 7 0.570
varargs gen 20 29 27 0.745
escape gen 7 7 9 0.782
pea_hello gen NA NA 6 NA

raw benchmark files