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 0 188 0.005
loops gen 2 2 304 0.006
fib_iter gen 8 7 910 0.008
fib_recursive gen 10 8 902 0.011
asdl_generated gen 7 9 389 0.017
parse gen 29 24 797 0.036
scoped_resource gen 43 44 1,030 0.042
containers gen 8 6 117 0.067
classes gen 2 1 30 0.069
files gen 5 3 74 0.070
tuple_return_value gen 15 16 193 0.079
gc_stack_roots gen 2 1 13 0.135
length gen 42 41 211 0.199
cartesian gen 85 80 337 0.253
escape gen 98 99 359 0.272
cgi gen 268 269 524 0.511
varargs gen 15 20 25 0.592
control_flow gen 209 158 116 1.803
pea_hello gen NA NA 12 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.4 0.36
cartesian gen 3.5 3.5 8.4 0.42
cgi gen 3.5 3.5 8.4 0.42
escape gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
fib_iter gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
files gen 3.8 3.9 8.5 0.45
length gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.7 8.5 0.46
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.5 5.4 8.5 0.65
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 1 6 0.000
gc_stack_roots gen 0 1 6 0.000
modules gen 1 2 8 0.107
control_flow gen 1 2 8 0.125
classes gen 1 2 8 0.129
containers gen 4 4 26 0.150
parse gen 2 3 11 0.185
files gen 2 4 11 0.188
fib_recursive gen 1 3 5 0.195
loops gen 2 2 9 0.211
length gen 2 4 9 0.222
cgi gen 2 2 9 0.222
asdl_generated gen 4 2 8 0.483
tuple_return_value gen 4 2 8 0.507
scoped_resource gen 5 2 7 0.711
cartesian gen 6 6 7 0.858
varargs gen 25 19 28 0.881
escape gen 8 4 9 0.886
pea_hello gen NA NA 6 NA

raw benchmark files