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 0 30 0.000
fib_iter gen 4 8 894 0.004
modules gen 2 2 189 0.009
fib_recursive gen 11 7 900 0.012
loops gen 4 0 301 0.013
asdl_generated gen 11 11 384 0.029
containers gen 4 5 132 0.029
parse gen 30 15 776 0.039
scoped_resource gen 47 37 1,019 0.046
tuple_return_value gen 19 15 195 0.099
files gen 7 7 74 0.100
gc_stack_roots gen 2 0 16 0.113
length gen 45 26 211 0.214
cartesian gen 87 71 339 0.257
escape gen 97 95 361 0.269
cgi gen 246 264 553 0.444
varargs gen 25 37 19 1.277
control_flow gen 208 161 112 1.867
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.6 4.3 12.3 0.37
gc_stack_roots gen 3.4 3.5 8.4 0.41
cartesian gen 3.5 3.5 8.5 0.42
modules gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.0 0.42
control_flow gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.7 8.5 0.45
files gen 3.8 3.7 8.5 0.45
length gen 3.8 3.7 8.5 0.45
loops 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.8 8.3 0.46
tuple_return_value gen 3.8 3.8 8.1 0.47
containers gen 28.5 28.4 49.1 0.58
varargs gen 5.6 5.5 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
control_flow gen 0 0 8 0.000
files gen 0 0 12 0.000
gc_stack_roots gen 0 2 4 0.000
length gen 0 19 4 0.000
loops gen 0 3 8 0.000
modules gen 0 0 8 0.000
parse gen 0 11 12 0.000
scoped_resource gen 0 8 8 0.000
tuple_return_value gen 0 4 12 0.000
fib_iter gen 4 0 12 0.317
cartesian gen 4 16 12 0.331
classes gen 3 3 9 0.386
varargs gen 41 29 62 0.665
containers gen 12 9 12 0.961
escape gen 8 8 8 0.970
cgi gen 8 4 4 2.011
fib_recursive gen 0 4 0 NA
pea_hello gen NA NA 4 NA

raw benchmark files