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 192 0.004
loops gen 2 1 300 0.008
fib_iter gen 8 7 900 0.008
fib_recursive gen 11 9 885 0.012
asdl_generated gen 9 10 385 0.023
parse gen 29 25 780 0.037
classes gen 1 2 28 0.041
scoped_resource gen 46 41 1,028 0.044
containers gen 6 7 117 0.052
gc_stack_roots gen 1 1 13 0.067
files gen 6 6 71 0.079
tuple_return_value gen 16 15 195 0.083
length gen 40 41 212 0.189
cartesian gen 85 78 340 0.249
escape gen 99 99 357 0.278
cgi gen 268 267 526 0.510
varargs gen 15 17 27 0.545
control_flow gen 209 160 114 1.832
pea_hello gen NA NA 13 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.3 12.3 0.36
gc_stack_roots gen 3.5 3.4 8.5 0.42
modules gen 3.5 3.9 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
cgi gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 0 7 0.000
fib_recursive gen 0 2 10 0.000
modules gen 1 1 7 0.121
control_flow gen 1 2 7 0.143
files gen 2 1 13 0.144
parse gen 1 2 7 0.144
gc_stack_roots gen 1 1 6 0.145
loops gen 1 2 7 0.177
asdl_generated gen 2 1 11 0.181
classes gen 2 1 10 0.227
containers gen 6 4 26 0.234
scoped_resource gen 4 4 11 0.361
cgi gen 2 2 5 0.401
tuple_return_value gen 3 3 7 0.433
length gen 4 5 8 0.491
escape gen 6 5 7 0.861
varargs gen 25 22 26 0.944
cartesian gen 9 9 8 1.121
pea_hello gen NA NA 4 NA

raw benchmark files