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 1 1 199 0.005
fib_iter gen 8 8 945 0.008
loops gen 3 1 304 0.009
fib_recursive gen 10 11 898 0.011
asdl_generated gen 8 9 389 0.020
parse gen 29 24 772 0.038
scoped_resource gen 46 42 1,030 0.045
containers gen 6 6 108 0.055
files gen 5 7 74 0.073
tuple_return_value gen 19 16 192 0.101
classes gen 3 1 33 0.107
gc_stack_roots gen 2 0 13 0.125
length gen 39 41 207 0.188
cartesian gen 87 82 332 0.264
escape gen 100 98 358 0.279
cgi gen 265 267 530 0.499
varargs gen 17 23 25 0.687
control_flow gen 203 160 120 1.697
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.5 4.5 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.5 8.5 0.42
cgi gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.9 8.4 0.44
scoped_resource 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.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
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 2 6 0.000
fib_iter gen 0 0 8 0.000
gc_stack_roots gen 0 2 6 0.000
tuple_return_value gen 0 2 8 0.000
fib_recursive gen 1 0 11 0.089
parse gen 1 3 8 0.126
loops gen 1 2 7 0.132
containers gen 6 4 35 0.170
modules gen 1 1 5 0.192
scoped_resource gen 2 3 10 0.199
files gen 2 1 9 0.200
cgi gen 2 4 8 0.250
asdl_generated gen 3 2 6 0.496
escape gen 6 5 9 0.666
control_flow gen 4 1 5 0.799
varargs gen 23 16 29 0.801
cartesian gen 5 4 6 0.838
length gen 6 4 7 0.854
pea_hello gen NA NA 9 NA

raw benchmark files