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
gc_stack_roots gen 0 0 4 0.000
modules gen 1 0 183 0.005
loops gen 2 2 292 0.006
fib_iter gen 7 8 895 0.007
fib_recursive gen 10 9 881 0.011
asdl_generated gen 10 7 375 0.026
parse gen 27 24 778 0.034
scoped_resource gen 47 43 1,040 0.045
containers gen 8 7 109 0.071
files gen 6 5 72 0.077
tuple_return_value gen 18 17 193 0.092
classes gen 2 1 22 0.095
length gen 40 39 211 0.190
cartesian gen 84 79 346 0.242
escape gen 101 107 349 0.289
cgi gen 265 267 522 0.507
varargs gen 12 19 17 0.717
control_flow gen 208 162 108 1.920

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.8 0.41
cgi gen 3.5 3.7 6.9 0.51
escape gen 3.5 3.7 6.9 0.51
gc_stack_roots gen 3.5 3.5 6.9 0.51
parse gen 3.9 3.8 7.6 0.52
fib_recursive gen 3.7 3.8 7.1 0.52
scoped_resource gen 3.7 3.5 7.1 0.52
cartesian gen 3.7 3.7 6.9 0.53
fib_iter gen 3.7 3.7 6.9 0.53
files gen 3.7 3.8 6.9 0.53
control_flow gen 3.8 3.7 7.1 0.54
length gen 3.8 3.8 7.1 0.54
loops gen 3.8 3.9 7.1 0.54
modules gen 3.8 3.8 7.1 0.54
asdl_generated gen 3.7 3.7 6.8 0.54
tuple_return_value gen 3.8 3.8 6.9 0.55
containers gen 28.8 28.8 47.8 0.60
varargs gen 5.5 5.5 7.1 0.78

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 1 2 9 0.109
fib_iter gen 1 0 8 0.117
asdl_generated gen 1 4 8 0.123
scoped_resource gen 1 2 8 0.127
classes gen 1 2 8 0.130
containers gen 4 4 28 0.139
modules gen 1 2 4 0.218
gc_stack_roots gen 2 2 7 0.247
tuple_return_value gen 3 2 10 0.296
loops gen 2 1 6 0.304
parse gen 3 3 7 0.437
files gen 2 2 4 0.457
length gen 4 6 7 0.575
control_flow gen 3 2 5 0.598
varargs gen 28 21 29 0.981
cgi gen 5 2 5 0.999
escape gen 6 3 5 1.202
cartesian gen 7 7 4 1.748

raw benchmark files