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 2 12 0.000
loops gen 0 0 297 0.000
fib_recursive gen 7 11 888 0.008
fib_iter gen 8 4 898 0.008
modules gen 2 2 186 0.009
asdl_generated gen 11 7 390 0.028
parse gen 26 27 787 0.034
scoped_resource gen 44 39 1,029 0.042
containers gen 8 7 131 0.058
tuple_return_value gen 19 18 196 0.098
files gen 7 7 71 0.102
classes gen 3 3 23 0.138
length gen 42 46 209 0.199
escape gen 98 91 359 0.272
cartesian gen 91 87 331 0.276
cgi gen 269 268 529 0.508
varargs gen 19 36 24 0.808
control_flow gen 208 162 114 1.827
pea_hello gen NA NA 5 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.2 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
asdl_generated gen 3.5 3.5 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
fib_iter gen 3.7 3.8 8.5 0.43
control_flow gen 3.7 3.9 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.9 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
loops gen 3.8 3.8 8.7 0.44
modules gen 3.8 3.7 8.5 0.45
length gen 3.7 3.9 8.1 0.45
files gen 3.8 3.8 8.4 0.45
containers gen 28.5 28.7 49.1 0.58
varargs gen 5.6 5.6 8.4 0.67
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 4 4 0.000
cartesian gen 0 0 12 0.000
cgi gen 0 4 4 0.000
classes gen 0 0 15 0.000
control_flow gen 0 0 8 0.000
fib_iter gen 0 4 8 0.000
files gen 0 0 12 0.000
modules gen 0 0 12 0.000
tuple_return_value gen 0 0 4 0.000
gc_stack_roots gen 2 0 8 0.231
containers gen 8 7 20 0.383
fib_recursive gen 4 0 8 0.447
loops gen 4 3 8 0.471
scoped_resource gen 4 8 8 0.496
varargs gen 46 28 56 0.831
length gen 4 0 4 0.942
parse gen 4 0 4 0.947
escape gen 8 12 4 2.042
pea_hello gen NA NA 14 NA

raw benchmark files