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 2 193 0.000
fib_iter gen 6 6 936 0.007
fib_recursive gen 10 10 907 0.011
loops gen 4 1 301 0.012
asdl_generated gen 10 8 388 0.025
parse gen 26 24 769 0.034
scoped_resource gen 44 42 1,050 0.042
classes gen 1 2 24 0.044
files gen 5 5 79 0.065
containers gen 7 6 111 0.067
gc_stack_roots gen 1 2 12 0.068
tuple_return_value gen 16 16 192 0.084
length gen 40 42 217 0.184
cartesian gen 83 81 329 0.253
escape gen 105 98 369 0.285
cgi gen 255 265 524 0.487
varargs gen 17 13 27 0.629
control_flow gen 208 159 115 1.817
pea_hello gen NA NA 14 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
cartesian gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
parse gen 3.8 3.7 9.1 0.42
modules gen 3.7 3.8 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.9 8.7 0.44
loops gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
length gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 4 10 0.000
loops gen 0 2 8 0.000
fib_recursive gen 1 1 10 0.098
fib_iter gen 1 2 9 0.120
containers gen 4 5 32 0.132
gc_stack_roots gen 1 0 6 0.135
classes gen 2 1 14 0.150
control_flow gen 1 3 6 0.166
asdl_generated gen 1 3 5 0.194
modules gen 2 0 6 0.290
tuple_return_value gen 3 2 8 0.378
files gen 2 2 5 0.406
parse gen 4 3 8 0.506
scoped_resource gen 4 4 7 0.568
escape gen 2 5 3 0.667
cartesian gen 8 5 10 0.802
varargs gen 23 27 26 0.884
length gen 5 4 3 1.665
pea_hello gen NA NA 4 NA

raw benchmark files