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 7 893 0.005
loops gen 2 2 301 0.006
modules gen 2 0 193 0.009
fib_recursive gen 9 10 927 0.010
asdl_generated gen 7 7 390 0.019
parse gen 29 24 771 0.037
scoped_resource gen 47 43 1,081 0.044
containers gen 7 7 120 0.058
classes gen 2 2 25 0.064
gc_stack_roots gen 1 1 11 0.082
files gen 6 7 77 0.083
tuple_return_value gen 19 18 195 0.099
length gen 42 42 228 0.185
escape gen 99 99 362 0.274
cartesian gen 91 77 329 0.275
cgi gen 268 267 531 0.505
varargs gen 13 17 21 0.620
control_flow gen 206 164 114 1.799
pea_hello gen NA NA 9 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
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.7 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
control_flow gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
modules gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.5 8.4 0.45
length gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
containers gen 28.6 28.8 49.2 0.58
varargs gen 5.5 5.4 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
modules gen 0 2 6 0.000
tuple_return_value gen 0 0 5 0.000
scoped_resource gen 1 3 11 0.091
gc_stack_roots gen 1 1 9 0.101
classes gen 2 1 15 0.106
cartesian gen 1 9 8 0.126
files gen 1 0 6 0.177
parse gen 2 4 10 0.199
containers gen 5 4 24 0.208
length gen 2 3 9 0.224
loops gen 2 1 8 0.236
fib_iter gen 3 1 11 0.259
fib_recursive gen 2 1 7 0.280
control_flow gen 3 1 9 0.332
cgi gen 3 3 8 0.375
asdl_generated gen 4 4 6 0.619
varargs gen 26 22 32 0.814
escape gen 7 4 5 1.405
pea_hello gen NA NA 8 NA

raw benchmark files