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
gc_stack_roots gen 0 0 11 0.000
modules gen 0 0 190 0.000
fib_iter gen 6 7 944 0.007
fib_recursive gen 11 11 890 0.012
loops gen 4 3 293 0.013
asdl_generated gen 11 11 386 0.028
parse gen 30 20 788 0.038
scoped_resource gen 45 39 1,040 0.043
classes gen 2 2 33 0.062
containers gen 7 5 109 0.064
files gen 6 6 80 0.077
tuple_return_value gen 16 16 198 0.083
length gen 40 44 209 0.191
cartesian gen 86 81 336 0.255
escape gen 101 99 358 0.283
cgi gen 267 263 530 0.503
varargs gen 14 19 17 0.820
control_flow gen 208 159 118 1.761
pea_hello gen NA NA 10 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.5 0.36
cartesian gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.7 9.0 0.42
files gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
control_flow gen 3.7 3.8 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
gc_stack_roots gen 3.7 3.4 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
asdl_generated gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
containers gen 28.6 28.8 49.1 0.58
varargs gen 5.6 5.5 8.5 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
asdl_generated gen 0 0 7 0.000
fib_recursive gen 0 0 9 0.000
loops gen 0 0 11 0.000
fib_iter gen 1 1 9 0.119
containers gen 5 6 37 0.134
classes gen 1 1 5 0.204
gc_stack_roots gen 2 2 8 0.215
modules gen 2 2 8 0.221
files gen 1 2 4 0.257
scoped_resource gen 2 6 7 0.287
control_flow gen 1 1 3 0.333
parse gen 3 7 8 0.374
cgi gen 4 6 8 0.499
escape gen 4 5 8 0.501
length gen 4 1 7 0.572
tuple_return_value gen 3 2 5 0.578
varargs gen 26 20 36 0.719
cartesian gen 6 6 6 1.007
pea_hello gen NA NA 7 NA

raw benchmark files