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
loops gen 0 3 301 0.000
fib_iter gen 8 8 905 0.008
modules gen 2 2 194 0.009
fib_recursive gen 11 11 892 0.012
asdl_generated gen 7 7 385 0.019
parse gen 26 23 808 0.032
scoped_resource gen 43 41 1,033 0.042
containers gen 8 7 114 0.067
tuple_return_value gen 19 18 200 0.096
files gen 7 4 71 0.102
classes gen 3 0 27 0.123
length gen 34 41 203 0.166
gc_stack_roots gen 2 2 8 0.227
cartesian gen 89 82 325 0.273
escape gen 104 102 354 0.294
varargs gen 12 27 40 0.310
cgi gen 268 265 533 0.503
control_flow gen 204 157 117 1.739
pea_hello gen NA NA 14 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
asdl_generated gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
cgi gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
modules gen 3.8 3.8 8.7 0.44
files gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.9 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
containers gen 28.4 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
classes gen 0 3 11 0.000
escape gen 0 0 8 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 4 12 0.000
gc_stack_roots gen 0 0 12 0.000
containers gen 8 7 28 0.277
cartesian gen 4 4 12 0.339
asdl_generated gen 4 4 8 0.452
scoped_resource gen 4 4 8 0.491
loops gen 4 0 4 0.916
length gen 11 4 12 0.942
control_flow gen 4 4 4 0.989
parse gen 4 4 4 1.084
varargs gen 53 38 40 1.342
cgi gen 0 4 0 NA
modules gen 0 0 0 NA
pea_hello gen NA NA 4 NA
tuple_return_value gen 0 0 0 NA

raw benchmark files