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
classes gen 0 3 39 0.000
fib_iter gen 8 8 887 0.009
modules gen 2 2 192 0.010
fib_recursive gen 11 11 900 0.012
loops gen 4 3 301 0.013
asdl_generated gen 5 11 378 0.014
parse gen 23 27 813 0.028
scoped_resource gen 44 42 1,031 0.043
containers gen 8 3 131 0.059
tuple_return_value gen 14 15 183 0.079
files gen 7 4 76 0.096
length gen 45 45 216 0.207
gc_stack_roots gen 2 2 8 0.227
cartesian gen 87 82 345 0.251
escape gen 102 97 356 0.287
varargs gen 12 12 24 0.488
cgi gen 270 245 521 0.518
control_flow gen 209 157 109 1.920
pea_hello gen NA NA 19 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.3 12.5 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
parse gen 3.7 3.9 9.0 0.41
cartesian gen 3.5 3.7 8.5 0.42
fib_iter gen 3.5 3.7 8.5 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
control_flow gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
loops gen 3.8 3.7 8.7 0.44
scoped_resource gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.5 8.4 0.45
length gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.8 8.5 0.46
files gen 3.9 3.7 8.3 0.48
containers gen 28.7 28.6 49.1 0.58
varargs gen 5.6 5.4 8.5 0.66
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 8 12 0.000
control_flow gen 0 4 12 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 4 8 0.000
gc_stack_roots gen 0 0 12 0.000
loops gen 0 0 4 0.000
modules gen 0 0 4 0.000
containers gen 8 10 28 0.278
tuple_return_value gen 5 4 16 0.303
asdl_generated gen 5 0 16 0.341
scoped_resource gen 4 4 8 0.501
parse gen 8 0 8 0.954
varargs gen 54 53 56 0.977
escape gen 4 4 4 0.982
cartesian gen 4 4 4 1.029
classes gen 3 0 0 inf
length gen 0 0 0 NA
pea_hello gen NA NA 0 NA

raw benchmark files