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 12 0.000
modules gen 0 2 188 0.000
loops gen 2 1 313 0.007
fib_iter gen 6 8 905 0.007
fib_recursive gen 11 10 924 0.012
asdl_generated gen 10 10 394 0.024
parse gen 25 26 776 0.032
scoped_resource gen 43 42 1,041 0.042
containers gen 6 5 116 0.052
files gen 6 7 76 0.082
tuple_return_value gen 17 16 188 0.092
classes gen 3 1 26 0.099
length gen 43 40 227 0.188
cartesian gen 87 78 341 0.254
escape gen 101 99 364 0.277
cgi gen 268 266 524 0.511
varargs gen 14 24 23 0.609
control_flow gen 209 159 122 1.717
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.3 4.3 12.5 0.35
gc_stack_roots gen 3.4 3.4 8.5 0.40
parse gen 3.8 3.9 9.1 0.42
cartesian gen 3.5 3.5 8.4 0.42
control_flow gen 3.7 3.9 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.7 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
cgi gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
containers gen 28.6 28.8 49.1 0.58
varargs gen 5.5 5.5 8.4 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
control_flow gen 0 3 4 0.000
fib_recursive gen 0 1 8 0.000
classes gen 1 2 12 0.072
files gen 1 1 8 0.131
fib_iter gen 1 0 8 0.135
asdl_generated gen 1 1 6 0.177
tuple_return_value gen 2 2 11 0.185
modules gen 2 0 9 0.193
containers gen 6 5 29 0.206
gc_stack_roots gen 2 2 8 0.242
cgi gen 2 3 8 0.250
length gen 3 5 9 0.339
loops gen 2 2 6 0.341
scoped_resource gen 4 3 9 0.449
parse gen 5 1 9 0.557
cartesian gen 5 8 7 0.718
varargs gen 25 16 30 0.834
escape gen 6 6 6 0.999
pea_hello gen NA NA 11 NA

raw benchmark files