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 2 175 0.005
loops gen 2 2 291 0.006
fib_iter gen 7 8 898 0.008
fib_recursive gen 10 10 882 0.011
asdl_generated gen 10 9 375 0.026
parse gen 26 22 776 0.034
scoped_resource gen 46 40 1,071 0.043
containers gen 7 6 110 0.062
classes gen 2 2 23 0.089
tuple_return_value gen 18 16 192 0.095
files gen 7 7 69 0.106
gc_stack_roots gen 1 0 5 0.175
length gen 45 43 207 0.216
cartesian gen 81 78 354 0.230
escape gen 101 103 353 0.287
cgi gen 268 262 523 0.513
varargs gen 17 17 19 0.881
control_flow gen 210 161 106 1.986

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.3 10.6 0.42
gc_stack_roots gen 3.4 3.5 7.1 0.48
escape gen 3.5 3.7 6.9 0.51
modules gen 3.5 3.8 6.9 0.51
cgi gen 3.7 3.7 7.1 0.52
scoped_resource gen 3.7 3.7 7.1 0.52
parse gen 3.9 3.9 7.5 0.53
asdl_generated gen 3.7 3.7 6.9 0.53
cartesian gen 3.7 3.7 6.9 0.53
fib_recursive gen 3.7 3.8 6.9 0.53
files gen 3.7 3.8 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
length gen 3.8 3.8 6.9 0.55
fib_iter gen 3.8 3.9 6.8 0.56
control_flow gen 3.9 3.8 6.9 0.57
containers gen 28.9 28.8 47.6 0.61
varargs gen 5.6 5.5 7.1 0.80

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
control_flow gen 0 1 8 0.000
files gen 0 0 8 0.000
modules gen 1 0 7 0.123
gc_stack_roots gen 1 2 7 0.125
asdl_generated gen 1 2 8 0.135
length gen 1 2 7 0.142
classes gen 1 1 7 0.147
fib_recursive gen 1 1 6 0.163
fib_iter gen 1 0 6 0.166
containers gen 5 4 26 0.189
loops gen 2 1 6 0.307
scoped_resource gen 2 7 6 0.331
tuple_return_value gen 2 3 6 0.337
cgi gen 2 7 5 0.400
parse gen 3 5 7 0.417
escape gen 5 7 6 0.836
varargs gen 24 23 26 0.909
cartesian gen 9 7 5 1.808

raw benchmark files