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 1 13 0.000
fib_iter gen 8 7 940 0.008
modules gen 2 1 190 0.009
fib_recursive gen 11 10 887 0.012
loops gen 4 2 298 0.013
asdl_generated gen 9 10 409 0.021
parse gen 29 26 769 0.038
scoped_resource gen 45 43 1,045 0.043
files gen 5 5 78 0.066
classes gen 2 1 29 0.070
containers gen 10 7 121 0.079
tuple_return_value gen 18 16 194 0.094
length gen 43 43 211 0.204
cartesian gen 84 80 339 0.249
escape gen 99 96 361 0.273
cgi gen 268 264 521 0.514
varargs gen 15 14 15 0.990
control_flow gen 208 158 112 1.860
pea_hello gen NA NA 12 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
parse gen 3.7 3.9 9.0 0.41
gc_stack_roots gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.5 8.4 0.42
length gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.8 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
files gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.3 0.46
containers gen 28.8 28.9 49.1 0.59
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
fib_iter gen 0 1 7 0.000
loops gen 0 1 12 0.000
modules gen 0 1 7 0.000
control_flow gen 1 4 10 0.101
parse gen 1 1 10 0.101
containers gen 2 3 20 0.106
length gen 1 3 8 0.125
classes gen 1 2 8 0.127
fib_recursive gen 1 1 7 0.152
tuple_return_value gen 1 2 6 0.160
asdl_generated gen 2 1 10 0.194
scoped_resource gen 2 3 8 0.251
gc_stack_roots gen 2 1 6 0.289
files gen 2 3 7 0.293
cgi gen 3 4 8 0.375
varargs gen 24 25 37 0.643
cartesian gen 9 6 9 1.001
escape gen 7 7 5 1.395
pea_hello gen NA NA 6 NA

raw benchmark files