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 0 1 196 0.000
fib_iter gen 9 8 944 0.009
fib_recursive gen 9 10 921 0.010
loops gen 4 2 297 0.012
asdl_generated gen 9 10 405 0.022
parse gen 30 28 781 0.038
scoped_resource gen 45 40 1,048 0.043
containers gen 7 6 125 0.056
files gen 6 6 80 0.079
tuple_return_value gen 15 18 191 0.079
gc_stack_roots gen 1 2 12 0.079
classes gen 2 2 26 0.089
length gen 40 43 209 0.193
cartesian gen 84 80 336 0.251
escape gen 98 97 357 0.273
cgi gen 265 267 543 0.488
varargs gen 16 18 23 0.707
control_flow gen 206 161 115 1.794
pea_hello gen NA NA 11 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.3 0.35
cgi gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.7 8.5 0.42
fib_iter gen 3.5 3.8 8.4 0.42
length gen 3.5 3.8 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
files gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cartesian gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.9 49.2 0.58
varargs gen 5.5 5.6 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
fib_iter gen 0 0 7 0.000
loops gen 0 1 8 0.000
parse gen 1 0 12 0.084
classes gen 1 1 12 0.096
gc_stack_roots gen 1 0 7 0.136
files gen 1 1 5 0.180
modules gen 2 1 8 0.217
containers gen 5 5 21 0.236
asdl_generated gen 2 1 8 0.244
fib_recursive gen 2 1 8 0.244
control_flow gen 4 3 8 0.501
length gen 4 2 8 0.504
tuple_return_value gen 4 1 8 0.505
scoped_resource gen 3 5 5 0.599
varargs gen 23 21 30 0.779
escape gen 8 8 10 0.798
cartesian gen 9 6 11 0.822
cgi gen 5 2 5 0.999
pea_hello gen NA NA 7 NA

raw benchmark files