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 8 4 891 0.008
modules gen 2 2 199 0.009
fib_recursive gen 11 11 892 0.012
loops gen 4 3 301 0.012
asdl_generated gen 11 11 401 0.027
containers gen 4 4 124 0.031
parse gen 31 23 791 0.039
scoped_resource gen 44 42 1,026 0.043
files gen 4 4 72 0.050
tuple_return_value gen 15 18 196 0.078
classes gen 3 0 26 0.131
length gen 41 41 210 0.196
cartesian gen 91 84 361 0.252
gc_stack_roots gen 2 2 8 0.259
escape gen 97 106 351 0.276
varargs gen 16 29 32 0.488
cgi gen 269 268 523 0.513
control_flow gen 209 165 120 1.740
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
gc_stack_roots gen 3.5 3.4 8.5 0.42
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.5 8.4 0.44
scoped_resource gen 3.7 3.5 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
cartesian gen 3.8 3.5 8.4 0.45
control_flow gen 3.8 3.8 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.5 28.5 49.1 0.58
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 4 0.000
cgi gen 0 0 12 0.000
classes gen 0 3 13 0.000
fib_iter gen 0 4 8 0.000
fib_recursive gen 0 0 12 0.000
gc_stack_roots gen 0 0 12 0.000
loops gen 0 0 8 0.000
modules gen 0 0 4 0.000
parse gen 0 4 12 0.000
files gen 4 4 12 0.302
scoped_resource gen 4 4 12 0.336
containers gen 12 11 20 0.585
escape gen 8 0 12 0.676
length gen 4 4 4 0.928
tuple_return_value gen 4 0 4 0.953
varargs gen 51 37 48 1.058
cartesian gen 0 0 0 NA
control_flow gen 0 0 0 NA
pea_hello gen NA NA 7 NA

raw benchmark files