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_iter gen 4 8 886 0.004
fib_recursive gen 7 11 886 0.008
modules gen 2 0 191 0.009
loops gen 4 3 314 0.012
asdl_generated gen 7 7 385 0.019
containers gen 4 0 129 0.030
parse gen 26 23 764 0.034
scoped_resource gen 47 41 1,059 0.045
files gen 7 4 77 0.093
tuple_return_value gen 19 15 194 0.098
classes gen 3 3 30 0.106
gc_stack_roots gen 2 2 16 0.110
length gen 45 46 209 0.215
cartesian gen 79 82 334 0.237
escape gen 97 98 364 0.266
cgi gen 266 251 507 0.524
varargs gen 16 19 31 0.527
control_flow gen 208 160 119 1.741
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.5 12.3 0.36
asdl_generated gen 3.5 3.5 8.5 0.42
escape gen 3.5 3.8 8.5 0.42
fib_iter gen 3.5 3.8 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
files gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
fib_recursive gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
length gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.5 49.1 0.58
varargs gen 5.5 5.5 8.4 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
classes gen 0 0 8 0.000
control_flow gen 0 4 4 0.000
files gen 0 4 8 0.000
gc_stack_roots gen 0 0 4 0.000
length gen 0 0 8 0.000
loops gen 0 0 8 0.000
modules gen 0 2 8 0.000
scoped_resource gen 0 4 4 0.000
tuple_return_value gen 0 4 4 0.000
cgi gen 4 0 12 0.331
parse gen 4 4 12 0.361
fib_recursive gen 4 0 8 0.448
fib_iter gen 4 0 8 0.470
asdl_generated gen 4 4 4 0.893
containers gen 12 14 12 0.953
varargs gen 49 46 46 1.054
cartesian gen 12 4 8 1.473
escape gen 8 8 0 inf
pea_hello gen NA NA 7 NA

raw benchmark files