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 19 0.000
loops gen 0 2 211 0.000
varargs gen 0 20 11 0.000
fib_recursive gen 4 8 615 0.006
fib_iter gen 5 5 658 0.008
modules gen 2 2 149 0.010
asdl_generated gen 7 8 266 0.028
parse gen 21 19 538 0.039
scoped_resource gen 34 33 713 0.047
files gen 5 5 54 0.095
tuple_return_value gen 13 13 137 0.098
gc_stack_roots gen 1 1 13 0.111
containers gen 8 8 69 0.121
length gen 30 27 150 0.202
cartesian gen 56 55 231 0.242
escape gen 73 55 252 0.289
cgi gen 197 183 382 0.516
control_flow gen 159 131 83 1.911
pea_hello gen NA NA 4 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
gc_stack_roots gen 3.6 3.6 8.7 0.42
asdl_generated gen 3.7 3.8 8.7 0.43
parse gen 3.9 4.0 9.2 0.43
escape gen 3.7 3.7 8.6 0.43
cartesian gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.8 8.5 0.43
fib_recursive gen 3.8 3.8 8.7 0.43
files gen 3.7 3.8 8.6 0.44
modules gen 3.8 3.8 8.6 0.44
length gen 3.8 3.8 8.6 0.44
scoped_resource gen 3.8 3.8 8.6 0.44
tuple_return_value gen 3.8 3.8 8.6 0.44
control_flow gen 3.9 3.9 8.7 0.45
loops gen 3.9 4.0 8.6 0.46
fib_iter gen 3.9 3.8 8.6 0.46
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.6 5.6 8.5 0.66
pea_hello gen NA NA 8.3 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
cgi gen 0 0 8 0.000
escape gen 0 16 4 0.000
fib_iter gen 0 0 4 0.000
files gen 0 0 4 0.000
modules gen 0 0 8 0.000
parse gen 0 0 8 0.000
scoped_resource gen 0 0 8 0.000
containers gen 4 4 33 0.128
classes gen 3 3 7 0.337
fib_recursive gen 4 0 4 0.950
cartesian gen 8 4 8 1.001
varargs gen 44 24 42 1.052
control_flow gen 4 0 0 inf
loops gen 3 0 0 inf
gc_stack_roots gen 0 0 0 NA
length gen 0 4 0 NA
pea_hello gen NA NA 8 NA
tuple_return_value gen 0 0 0 NA

raw benchmark files