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
fib_iter gen 5 5 627 0.009
modules gen 1 1 129 0.011
fib_recursive gen 8 4 624 0.012
loops gen 3 2 208 0.013
asdl_generated gen 4 4 267 0.014
parse gen 21 19 558 0.037
scoped_resource gen 33 32 725 0.045
tuple_return_value gen 9 13 134 0.066
containers gen 9 10 94 0.092
files gen 5 5 54 0.099
length gen 16 32 148 0.106
classes gen 2 0 23 0.106
gc_stack_roots gen 1 1 9 0.148
cartesian gen 60 53 237 0.251
escape gen 66 60 243 0.271
varargs gen 16 20 38 0.424
cgi gen 185 187 372 0.497
control_flow gen 145 109 82 1.773
pea_hello gen NA NA 15 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.6 4.5 12.2 0.37
gc_stack_roots gen 3.6 3.7 8.6 0.42
cgi gen 3.6 3.8 8.5 0.43
cartesian gen 3.7 3.7 8.6 0.43
parse gen 3.9 3.9 9.0 0.43
escape gen 3.7 3.7 8.6 0.43
asdl_generated gen 3.7 3.6 8.6 0.43
scoped_resource gen 3.7 3.7 8.6 0.43
fib_recursive gen 3.8 3.9 8.7 0.43
length gen 3.8 3.8 8.7 0.44
tuple_return_value gen 3.8 3.8 8.6 0.44
files gen 3.8 3.8 8.6 0.44
loops gen 3.8 3.8 8.6 0.45
control_flow gen 3.9 4.0 8.6 0.45
fib_iter gen 3.9 3.8 8.6 0.45
modules gen 3.9 3.8 8.7 0.45
containers gen 28.5 28.5 49.0 0.58
varargs gen 5.6 5.6 8.7 0.64
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 2 4 0.000
control_flow gen 0 4 4 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 4 4 0.000
files gen 0 0 4 0.000
gc_stack_roots gen 0 0 4 0.000
loops gen 0 0 12 0.000
modules gen 0 0 8 0.000
parse gen 0 0 8 0.000
scoped_resource gen 0 0 4 0.000
asdl_generated gen 4 4 8 0.474
escape gen 8 12 16 0.487
containers gen 4 5 8 0.530
tuple_return_value gen 4 0 8 0.548
varargs gen 29 25 15 1.854
length gen 16 0 4 3.913
cartesian gen 4 8 0 inf
cgi gen 0 0 0 NA
pea_hello gen NA NA 4 NA

raw benchmark files