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 2 173 0.000
fib_recursive gen 7 11 879 0.008
fib_iter gen 8 4 898 0.008
loops gen 4 0 295 0.012
parse gen 21 27 774 0.027
asdl_generated gen 11 11 381 0.029
scoped_resource gen 36 42 1,027 0.035
containers gen 8 0 125 0.061
tuple_return_value gen 14 18 180 0.076
files gen 7 8 72 0.103
classes gen 3 3 23 0.139
gc_stack_roots gen 2 2 12 0.141
length gen 37 45 202 0.184
cartesian gen 92 75 345 0.268
escape gen 100 96 351 0.285
cgi gen 265 251 510 0.520
varargs gen 23 12 23 1.021
control_flow gen 199 160 111 1.785

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 10.6 0.42
gc_stack_roots gen 3.4 3.5 7.1 0.48
parse gen 3.8 3.9 7.6 0.50
cgi gen 3.7 3.5 7.1 0.52
tuple_return_value gen 3.7 3.8 7.1 0.52
cartesian gen 3.7 3.7 6.9 0.53
length gen 3.7 3.8 6.9 0.53
files gen 3.8 3.8 7.1 0.54
loops gen 3.8 3.8 7.1 0.54
asdl_generated gen 3.7 3.8 6.8 0.54
control_flow gen 3.8 3.9 6.9 0.55
escape gen 3.8 3.5 6.9 0.55
fib_iter gen 3.8 3.8 6.9 0.55
fib_recursive gen 3.8 3.8 6.9 0.55
modules gen 3.8 3.7 6.9 0.55
scoped_resource gen 3.8 3.7 6.9 0.55
containers gen 28.5 28.7 47.5 0.60
varargs gen 5.5 5.6 6.9 0.79

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 4 0.000
cartesian gen 0 12 4 0.000
classes gen 0 0 8 0.000
fib_iter gen 0 4 8 0.000
files gen 0 0 4 0.000
loops gen 0 3 8 0.000
modules gen 2 0 12 0.153
fib_recursive gen 4 0 8 0.448
cgi gen 4 4 8 0.500
tuple_return_value gen 7 0 12 0.571
containers gen 8 14 12 0.633
parse gen 8 0 12 0.692
varargs gen 43 54 50 0.864
length gen 7 0 8 0.936
scoped_resource gen 12 4 12 0.992
escape gen 4 8 4 1.002
control_flow gen 8 0 4 2.000
gc_stack_roots gen 0 0 0 NA

raw benchmark files