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 300 0.000
fib_iter gen 8 8 894 0.008
modules gen 2 2 188 0.009
fib_recursive gen 11 11 884 0.012
asdl_generated gen 11 11 381 0.028
parse gen 25 23 784 0.032
scoped_resource gen 40 42 1,030 0.039
containers gen 8 4 114 0.069
tuple_return_value gen 16 18 189 0.086
files gen 8 7 84 0.093
gc_stack_roots gen 2 0 16 0.114
classes gen 3 3 27 0.118
length gen 41 45 208 0.196
escape gen 84 108 366 0.230
cartesian gen 98 71 342 0.287
cgi gen 269 254 522 0.516
varargs gen 25 19 20 1.247
control_flow gen 207 164 110 1.878

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.5 0.36
gc_stack_roots gen 3.4 3.7 8.4 0.41
fib_iter gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.0 0.42
files gen 3.5 3.7 8.4 0.42
length gen 3.5 3.8 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
loops gen 3.7 3.9 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.9 8.5 0.45
fib_recursive gen 3.8 3.5 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
containers gen 28.7 28.6 49.1 0.58
varargs gen 5.5 5.5 8.4 0.66

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 12 0.000
cgi gen 0 0 8 0.000
classes gen 0 0 12 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 8 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 4 0.000
modules gen 0 0 4 0.000
containers gen 8 11 28 0.285
tuple_return_value gen 4 0 12 0.336
control_flow gen 4 0 12 0.337
length gen 4 0 8 0.510
parse gen 4 4 8 0.516
scoped_resource gen 8 4 12 0.667
varargs gen 41 46 60 0.693
loops gen 4 0 4 0.914
escape gen 20 0 4 4.984
cartesian gen 0 16 0 NA

raw benchmark files