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 1 1 193 0.005
fib_iter gen 6 8 905 0.006
loops gen 3 3 300 0.010
fib_recursive gen 10 11 932 0.011
asdl_generated gen 7 9 391 0.018
parse gen 24 22 779 0.030
scoped_resource gen 46 40 1,058 0.044
containers gen 7 7 121 0.058
gc_stack_roots gen 1 2 14 0.062
tuple_return_value gen 15 16 195 0.078
files gen 6 7 77 0.084
classes gen 3 2 26 0.125
length gen 43 39 219 0.198
cartesian gen 86 80 328 0.263
escape gen 101 101 360 0.280
cgi gen 268 281 535 0.502
varargs gen 17 19 29 0.583
control_flow gen 209 166 116 1.800
pea_hello gen NA NA 12 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.6 12.3 0.36
gc_stack_roots gen 3.4 3.5 8.5 0.40
escape gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.0 0.42
modules gen 3.7 3.5 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
cartesian 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.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.9 8.4 0.45
loops gen 3.8 3.9 8.4 0.45
tuple_return_value gen 3.8 3.9 8.4 0.45
control_flow gen 3.9 3.7 8.5 0.46
containers gen 28.8 28.9 48.9 0.59
varargs gen 5.5 5.6 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
classes gen 0 1 13 0.000
fib_recursive gen 1 0 9 0.109
files gen 1 0 7 0.131
loops gen 1 0 7 0.145
modules gen 1 1 6 0.148
gc_stack_roots gen 1 0 5 0.185
control_flow gen 1 0 5 0.200
containers gen 5 3 24 0.209
length gen 2 6 7 0.289
cgi gen 2 1 6 0.333
scoped_resource gen 3 6 9 0.334
fib_iter gen 2 0 5 0.379
asdl_generated gen 4 2 9 0.443
cartesian gen 5 6 11 0.453
tuple_return_value gen 4 2 7 0.582
parse gen 7 5 10 0.686
escape gen 6 2 8 0.750
varargs gen 22 20 24 0.912
pea_hello gen NA NA 6 NA

raw benchmark files