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 7 6 888 0.007
modules gen 2 0 192 0.009
fib_recursive gen 10 11 889 0.011
loops gen 4 2 301 0.012
asdl_generated gen 9 9 393 0.022
parse gen 24 25 783 0.031
scoped_resource gen 46 41 1,038 0.044
containers gen 8 6 130 0.061
classes gen 2 1 27 0.076
files gen 6 7 74 0.086
tuple_return_value gen 18 15 194 0.094
gc_stack_roots gen 2 0 10 0.171
length gen 45 41 212 0.213
cartesian gen 88 80 335 0.263
escape gen 102 98 360 0.283
cgi gen 268 265 542 0.494
varargs gen 19 17 26 0.725
control_flow gen 207 162 115 1.807
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.6 4.5 12.3 0.37
gc_stack_roots gen 3.4 3.5 8.4 0.41
escape gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.9 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.9 8.5 0.45
modules gen 3.8 3.5 8.5 0.45
files gen 3.8 3.9 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 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
gc_stack_roots gen 0 2 9 0.000
length gen 0 5 7 0.000
loops gen 0 1 6 0.000
modules gen 0 2 6 0.000
fib_iter gen 1 1 11 0.086
classes gen 1 2 12 0.088
files gen 1 1 10 0.106
tuple_return_value gen 1 3 9 0.112
fib_recursive gen 1 0 8 0.122
containers gen 4 4 22 0.180
cartesian gen 3 6 11 0.273
asdl_generated gen 2 2 6 0.326
cgi gen 2 5 6 0.333
scoped_resource gen 2 4 5 0.399
control_flow gen 4 1 6 0.666
escape gen 5 6 7 0.713
parse gen 6 2 8 0.755
varargs gen 21 22 27 0.771
pea_hello gen NA NA 9 NA

raw benchmark files