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 191 0.005
fib_iter gen 7 7 903 0.007
loops gen 3 2 297 0.009
fib_recursive gen 10 11 891 0.011
asdl_generated gen 7 11 394 0.018
parse gen 30 26 767 0.039
scoped_resource gen 44 39 1,031 0.043
gc_stack_roots gen 1 2 13 0.065
containers gen 8 8 112 0.071
files gen 6 5 78 0.080
tuple_return_value gen 18 16 190 0.096
classes gen 3 1 27 0.113
length gen 43 43 211 0.205
cartesian gen 87 77 338 0.256
escape gen 104 98 362 0.287
cgi gen 266 263 528 0.504
varargs gen 15 11 22 0.690
control_flow gen 209 162 113 1.855
pea_hello gen NA NA 10 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.4 3.5 8.5 0.40
parse gen 3.7 3.8 9.1 0.40
asdl_generated gen 3.5 3.8 8.5 0.42
cartesian gen 3.5 3.8 8.5 0.42
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
files gen 3.8 3.9 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
fib_iter gen 3.8 3.9 8.4 0.45
length gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.8 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
classes gen 0 2 11 0.000
tuple_return_value gen 1 2 10 0.101
loops gen 1 1 9 0.102
parse gen 1 1 9 0.114
fib_iter gen 1 1 8 0.119
fib_recursive gen 1 0 8 0.122
containers gen 4 3 30 0.132
gc_stack_roots gen 1 0 6 0.141
length gen 1 3 6 0.167
files gen 1 2 5 0.208
modules gen 1 1 4 0.216
control_flow gen 2 2 7 0.287
escape gen 2 5 7 0.288
cgi gen 3 6 8 0.375
scoped_resource gen 3 7 7 0.420
asdl_generated gen 4 0 6 0.665
varargs gen 24 28 31 0.784
cartesian gen 8 9 3 2.653
pea_hello gen NA NA 8 NA

raw benchmark files