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 11 0.000
modules gen 0 1 193 0.000
fib_iter gen 7 7 895 0.007
loops gen 3 1 309 0.009
fib_recursive gen 10 9 902 0.011
asdl_generated gen 9 9 390 0.023
classes gen 1 2 32 0.024
parse gen 27 25 765 0.035
scoped_resource gen 45 44 1,051 0.043
containers gen 8 7 124 0.066
files gen 6 7 79 0.071
tuple_return_value gen 16 16 196 0.080
length gen 39 41 219 0.179
cartesian gen 84 77 332 0.253
escape gen 98 102 358 0.275
cgi gen 267 267 524 0.511
varargs gen 21 16 27 0.772
control_flow gen 207 159 116 1.783
pea_hello gen NA NA 8 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
escape gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
cartesian gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
control_flow gen 3.7 3.9 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
length gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
modules gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.4 8.5 0.65
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
loops gen 1 2 6 0.162
control_flow gen 1 1 6 0.166
fib_iter gen 1 1 6 0.181
containers gen 4 4 20 0.204
gc_stack_roots gen 2 1 8 0.221
fib_recursive gen 1 2 4 0.245
asdl_generated gen 2 2 7 0.281
modules gen 2 1 7 0.281
files gen 2 0 5 0.375
parse gen 3 2 8 0.377
classes gen 2 2 6 0.387
tuple_return_value gen 4 3 6 0.655
varargs gen 19 24 26 0.725
cgi gen 6 2 8 0.749
cartesian gen 8 11 9 0.889
length gen 6 4 6 0.980
scoped_resource gen 3 2 3 1.000
escape gen 8 2 8 1.004
pea_hello gen NA NA 10 NA

raw benchmark files