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
loops gen 2 2 300 0.006
fib_iter gen 7 5 940 0.007
modules gen 2 1 190 0.009
fib_recursive gen 10 10 900 0.011
asdl_generated gen 10 9 388 0.025
parse gen 28 25 780 0.036
scoped_resource gen 47 39 1,050 0.044
classes gen 2 1 30 0.072
files gen 6 6 78 0.080
containers gen 10 7 122 0.080
tuple_return_value gen 17 16 196 0.088
gc_stack_roots gen 2 1 12 0.138
length gen 40 41 213 0.188
cartesian gen 88 79 334 0.263
escape gen 98 100 352 0.278
cgi gen 268 279 552 0.486
varargs gen 13 25 25 0.531
control_flow gen 208 161 113 1.832
pea_hello gen NA NA 13 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.5 3.7 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
fib_iter gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
length gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
cartesian gen 3.8 3.5 8.5 0.45
control_flow gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
containers gen 28.6 28.9 49.1 0.58
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 1 7 0.000
modules gen 0 1 6 0.000
containers gen 2 4 24 0.082
fib_recursive gen 1 1 10 0.097
classes gen 1 2 9 0.120
fib_iter gen 1 3 7 0.143
files gen 1 2 6 0.175
asdl_generated gen 1 2 6 0.177
control_flow gen 2 2 8 0.249
loops gen 2 1 7 0.267
parse gen 2 2 7 0.277
tuple_return_value gen 2 3 7 0.289
scoped_resource gen 2 7 7 0.289
length gen 4 5 6 0.672
cgi gen 4 2 5 0.801
varargs gen 26 14 29 0.915
escape gen 8 4 8 0.997
cartesian gen 7 7 6 1.162
pea_hello gen NA NA 4 NA

raw benchmark files