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 0 0 192 0.000
fib_iter gen 6 8 968 0.006
fib_recursive gen 9 11 904 0.010
loops gen 4 3 300 0.012
asdl_generated gen 9 8 392 0.022
parse gen 25 24 786 0.032
scoped_resource gen 46 39 1,050 0.043
gc_stack_roots gen 1 2 13 0.068
classes gen 2 2 30 0.068
files gen 5 7 77 0.071
containers gen 9 6 119 0.074
tuple_return_value gen 16 16 193 0.083
length gen 41 42 216 0.192
cartesian gen 82 82 332 0.248
escape gen 100 100 362 0.277
cgi gen 263 267 527 0.498
varargs gen 12 18 22 0.544
control_flow gen 206 162 114 1.808
pea_hello gen NA NA 11 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.3 12.3 0.36
parse gen 3.8 3.9 9.2 0.41
gc_stack_roots gen 3.5 3.4 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.4 5.6 8.5 0.63
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 0 0 6 0.000
containers gen 3 4 24 0.123
classes gen 1 1 8 0.132
gc_stack_roots gen 1 0 6 0.147
fib_iter gen 2 0 11 0.171
scoped_resource gen 2 7 7 0.289
files gen 2 0 6 0.305
asdl_generated gen 2 3 7 0.307
fib_recursive gen 2 0 6 0.329
control_flow gen 4 1 11 0.364
tuple_return_value gen 3 2 8 0.377
modules gen 2 2 4 0.431
length gen 4 3 7 0.577
escape gen 5 4 7 0.719
varargs gen 29 22 31 0.933
cgi gen 7 2 7 0.998
parse gen 5 3 5 1.001
cartesian gen 9 4 8 1.126
pea_hello gen NA NA 7 NA

raw benchmark files