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 3 26 0.000
gc_stack_roots gen 0 0 11 0.000
fib_iter gen 6 7 944 0.007
modules gen 2 1 199 0.009
loops gen 3 3 307 0.009
fib_recursive gen 10 11 904 0.011
asdl_generated gen 11 9 384 0.027
parse gen 28 25 803 0.035
scoped_resource gen 42 43 1,049 0.040
containers gen 6 6 120 0.050
files gen 6 6 75 0.086
tuple_return_value gen 17 14 195 0.088
length gen 37 40 212 0.176
cartesian gen 88 78 340 0.258
escape gen 116 98 358 0.324
cgi gen 266 255 528 0.504
varargs gen 15 18 22 0.689
control_flow gen 208 160 116 1.797
pea_hello gen NA NA 9 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.3 4.5 12.3 0.35
asdl_generated gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.5 8.5 0.42
fib_iter gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
cgi gen 3.7 3.4 8.5 0.43
scoped_resource gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.9 8.7 0.44
escape gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.9 8.5 0.45
tuple_return_value gen 3.8 3.9 8.5 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 49.2 0.59
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 2 8 0.000
modules gen 0 1 6 0.000
fib_iter gen 1 1 8 0.134
fib_recursive gen 1 0 7 0.140
loops gen 1 0 6 0.152
files gen 1 2 7 0.153
gc_stack_roots gen 2 2 8 0.218
parse gen 2 2 8 0.249
classes gen 3 0 11 0.268
containers gen 6 4 20 0.299
tuple_return_value gen 2 4 6 0.334
control_flow gen 3 1 7 0.429
cgi gen 4 3 7 0.574
varargs gen 23 22 31 0.750
escape gen 4 5 5 0.794
cartesian gen 4 8 5 0.806
length gen 8 5 9 0.896
scoped_resource gen 5 2 5 1.004
pea_hello gen NA NA 9 NA

raw benchmark files