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 189 0.005
loops gen 2 2 305 0.006
fib_iter gen 6 6 885 0.006
fib_recursive gen 10 11 890 0.011
asdl_generated gen 9 10 385 0.023
parse gen 28 24 776 0.036
scoped_resource gen 42 43 1,052 0.040
containers gen 7 5 123 0.053
files gen 5 6 76 0.064
gc_stack_roots gen 1 1 11 0.083
tuple_return_value gen 16 14 195 0.083
classes gen 3 3 26 0.120
length gen 38 39 213 0.179
cartesian gen 85 76 334 0.256
escape gen 100 96 358 0.279
cgi gen 269 249 530 0.507
varargs gen 20 18 27 0.742
control_flow gen 206 159 113 1.826
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.3 0.36
gc_stack_roots gen 3.5 3.4 8.5 0.42
fib_recursive gen 3.5 3.9 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
control_flow gen 3.7 3.9 8.4 0.44
modules gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
cgi gen 3.7 3.7 8.3 0.44
fib_iter gen 3.8 3.7 8.5 0.45
files gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
tuple_return_value 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.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
classes gen 0 1 12 0.000
gc_stack_roots gen 1 1 9 0.101
fib_recursive gen 1 0 9 0.109
modules gen 1 1 7 0.125
parse gen 2 3 13 0.155
fib_iter gen 2 2 9 0.210
containers gen 5 6 22 0.246
loops gen 2 1 7 0.264
control_flow gen 3 2 10 0.298
files gen 3 2 8 0.368
asdl_generated gen 2 1 5 0.389
cgi gen 2 7 5 0.399
tuple_return_value gen 3 4 6 0.503
escape gen 6 7 9 0.666
scoped_resource gen 5 3 7 0.715
varargs gen 20 21 26 0.771
cartesian gen 6 10 6 1.005
length gen 6 6 3 2.006
pea_hello gen NA NA 6 NA

raw benchmark files