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 1 2 189 0.005
fib_iter gen 7 8 904 0.007
loops gen 3 1 301 0.009
fib_recursive gen 11 11 894 0.012
asdl_generated gen 10 11 390 0.025
parse gen 29 23 768 0.038
scoped_resource gen 41 42 1,038 0.039
files gen 5 6 77 0.060
containers gen 8 5 118 0.066
classes gen 2 2 31 0.066
gc_stack_roots gen 1 1 12 0.072
tuple_return_value gen 17 17 195 0.088
length gen 42 42 208 0.199
cartesian gen 85 83 341 0.249
escape gen 98 98 361 0.273
cgi gen 267 269 528 0.506
varargs gen 17 15 29 0.604
control_flow gen 209 161 114 1.831
pea_hello gen NA NA 13 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.3 0.37
gc_stack_roots gen 3.4 3.7 8.4 0.41
escape gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.5 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
loops gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.5 8.5 0.45
tuple_return_value gen 3.8 3.9 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
files gen 3.8 3.9 8.4 0.45
length gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.9 49.1 0.58
varargs gen 5.6 5.5 8.5 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_recursive gen 0 0 5 0.000
parse gen 1 4 13 0.078
modules gen 1 0 8 0.108
fib_iter gen 1 0 8 0.117
gc_stack_roots gen 1 1 7 0.123
control_flow gen 1 1 8 0.125
classes gen 1 1 8 0.129
loops gen 1 2 7 0.131
containers gen 4 5 24 0.162
asdl_generated gen 1 1 5 0.196
tuple_return_value gen 2 1 7 0.288
files gen 3 1 8 0.349
length gen 3 5 7 0.434
scoped_resource gen 6 3 10 0.597
varargs gen 24 24 25 0.955
cgi gen 4 0 4 1.000
escape gen 8 7 7 1.148
cartesian gen 7 3 6 1.161
pea_hello gen NA NA 5 NA

raw benchmark files