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 293 0.006
fib_iter gen 6 7 912 0.007
fib_recursive gen 10 11 893 0.011
modules gen 2 1 178 0.011
asdl_generated gen 9 10 380 0.023
parse gen 28 26 766 0.037
scoped_resource gen 47 43 1,066 0.044
containers gen 6 6 117 0.055
files gen 6 8 72 0.078
tuple_return_value gen 18 16 190 0.096
classes gen 2 3 25 0.100
length gen 40 39 213 0.188
cartesian gen 86 80 327 0.265
escape gen 101 105 350 0.289
gc_stack_roots gen 2 2 4 0.413
cgi gen 267 276 511 0.523
varargs gen 14 18 23 0.613
control_flow gen 207 162 107 1.941

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 10.7 0.41
parse gen 3.8 3.8 7.5 0.51
gc_stack_roots gen 3.5 3.5 6.9 0.51
asdl_generated gen 3.7 3.8 7.1 0.52
scoped_resource gen 3.7 3.7 7.1 0.52
cartesian gen 3.7 3.7 6.9 0.53
cgi gen 3.7 3.7 6.9 0.53
escape gen 3.7 3.7 6.9 0.53
tuple_return_value gen 3.7 3.8 6.9 0.53
loops gen 3.8 3.8 7.1 0.54
modules gen 3.8 3.8 7.1 0.54
fib_iter gen 3.8 3.8 6.9 0.55
fib_recursive gen 3.8 3.8 6.9 0.55
files gen 3.8 3.8 6.9 0.55
length gen 3.8 3.8 6.9 0.55
control_flow gen 3.8 3.9 6.8 0.56
containers gen 28.9 28.8 47.6 0.61
varargs gen 5.5 5.5 6.9 0.79

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 0 7 0.000
modules gen 0 1 8 0.000
scoped_resource gen 0 2 7 0.000
fib_recursive gen 1 0 7 0.139
classes gen 1 0 7 0.179
containers gen 5 5 27 0.200
loops gen 2 1 8 0.229
files gen 2 0 7 0.271
control_flow gen 2 1 7 0.287
fib_iter gen 2 1 7 0.287
parse gen 3 1 9 0.338
asdl_generated gen 2 1 5 0.395
tuple_return_value gen 2 3 4 0.481
cgi gen 3 4 6 0.499
cartesian gen 6 6 9 0.663
length gen 5 5 7 0.715
escape gen 6 5 6 1.003
varargs gen 26 22 23 1.138

raw benchmark files