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 13 0.000
modules gen 1 1 183 0.005
fib_iter gen 7 8 940 0.007
loops gen 3 2 310 0.009
fib_recursive gen 11 11 892 0.012
asdl_generated gen 9 10 382 0.022
parse gen 27 26 770 0.035
classes gen 1 2 28 0.036
scoped_resource gen 46 39 1,048 0.044
files gen 5 3 78 0.067
containers gen 8 4 122 0.070
tuple_return_value gen 17 15 195 0.087
length gen 41 40 211 0.193
cartesian gen 83 80 328 0.254
escape gen 100 99 362 0.275
cgi gen 268 269 520 0.515
varargs gen 16 17 26 0.612
control_flow gen 210 159 114 1.838
pea_hello gen NA NA 8 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.4 0.42
cgi gen 3.5 3.5 8.3 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
cartesian gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
loops gen 3.8 3.8 8.7 0.44
modules gen 3.8 3.8 8.7 0.44
scoped_resource gen 3.8 3.5 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
control_flow gen 3.9 3.8 8.5 0.46
fib_recursive gen 3.9 3.7 8.4 0.47
files gen 3.9 3.8 8.4 0.47
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.6 5.6 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
fib_recursive gen 0 0 4 0.000
modules gen 1 1 13 0.067
fib_iter gen 1 0 10 0.094
loops gen 1 1 7 0.132
containers gen 3 6 23 0.138
classes gen 2 1 10 0.204
asdl_generated gen 2 1 9 0.237
cgi gen 2 1 8 0.250
gc_stack_roots gen 2 2 6 0.284
scoped_resource gen 2 6 7 0.287
parse gen 3 1 10 0.302
control_flow gen 2 3 6 0.333
files gen 2 5 6 0.346
tuple_return_value gen 2 3 5 0.401
length gen 5 6 7 0.711
varargs gen 23 23 26 0.879
escape gen 7 4 7 1.004
cartesian gen 11 10 10 1.104
pea_hello gen NA NA 9 NA

raw benchmark files