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
loops gen 0 3 300 0.000
modules gen 0 2 187 0.000
fib_iter gen 8 8 892 0.008
fib_recursive gen 12 11 905 0.013
asdl_generated gen 11 6 398 0.027
parse gen 31 23 778 0.039
scoped_resource gen 45 46 1,049 0.043
files gen 4 7 71 0.052
containers gen 8 7 120 0.065
tuple_return_value gen 19 18 186 0.103
classes gen 3 3 27 0.117
gc_stack_roots gen 2 2 12 0.150
length gen 36 44 208 0.174
cartesian gen 79 82 328 0.242
escape gen 98 103 361 0.272
cgi gen 261 253 514 0.508
varargs gen 32 12 29 1.115
control_flow gen 200 169 114 1.763
pea_hello gen NA NA 14 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.6 4.5 12.3 0.37
escape gen 3.5 3.7 8.4 0.42
fib_iter gen 3.5 3.8 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
length gen 3.5 3.7 8.4 0.42
control_flow gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
loops gen 3.8 3.7 8.7 0.44
modules gen 3.8 3.8 8.7 0.44
fib_recursive gen 3.8 3.5 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.5 8.5 0.45
cgi gen 3.8 3.5 8.4 0.45
files gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.5 49.1 0.58
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
asdl_generated gen 0 6 8 0.000
classes gen 0 0 11 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 0 8 0.000
parse gen 0 4 16 0.000
tuple_return_value gen 0 0 12 0.000
modules gen 2 0 8 0.221
files gen 4 0 12 0.315
containers gen 8 7 20 0.390
scoped_resource gen 4 0 8 0.469
varargs gen 32 53 50 0.651
loops gen 4 0 4 0.912
control_flow gen 8 0 8 0.987
length gen 8 4 8 1.003
cgi gen 12 0 12 1.008
cartesian gen 12 4 8 1.490
escape gen 8 0 0 inf
pea_hello gen NA NA 5 NA

raw benchmark files