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
fib_recursive gen 7 7 869 0.008
fib_iter gen 8 8 882 0.009
modules gen 2 0 177 0.010
loops gen 4 3 295 0.013
asdl_generated gen 7 7 377 0.019
parse gen 25 19 750 0.033
scoped_resource gen 47 29 1,047 0.045
containers gen 10 7 116 0.089
files gen 8 8 68 0.112
tuple_return_value gen 20 19 181 0.112
length gen 40 40 197 0.204
classes gen 3 3 15 0.216
escape gen 98 105 349 0.280
cartesian gen 91 77 319 0.284
gc_stack_roots gen 2 0 4 0.450
cgi gen 251 264 502 0.500
control_flow gen 209 162 112 1.876
varargs gen 17 16 8 2.066

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.3 4.5 10.8 0.40
cgi gen 3.5 3.5 6.9 0.51
escape gen 3.5 3.7 6.9 0.51
parse gen 3.9 3.9 7.6 0.52
cartesian gen 3.7 3.5 7.1 0.52
scoped_resource gen 3.7 3.7 7.1 0.52
gc_stack_roots gen 3.5 3.4 6.8 0.52
asdl_generated gen 3.7 3.7 6.9 0.53
fib_iter gen 3.7 3.8 6.9 0.53
fib_recursive gen 3.7 3.9 6.9 0.53
modules gen 3.7 3.8 6.9 0.53
loops gen 3.8 3.7 7.1 0.54
length gen 3.8 3.8 6.9 0.55
tuple_return_value gen 3.8 3.7 6.9 0.55
control_flow gen 3.9 3.9 7.1 0.56
files gen 3.9 3.8 6.9 0.57
containers gen 28.6 28.6 47.6 0.60
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
cartesian gen 0 8 8 0.000
classes gen 0 0 15 0.000
control_flow gen 0 0 4 0.000
fib_iter gen 0 0 12 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 8 0.000
modules gen 0 2 4 0.000
scoped_resource gen 0 16 12 0.000
tuple_return_value gen 0 0 12 0.000
parse gen 4 8 20 0.209
containers gen 5 7 20 0.258
fib_recursive gen 4 4 12 0.297
length gen 4 4 12 0.333
cgi gen 4 4 12 0.333
varargs gen 50 49 64 0.775
asdl_generated gen 4 4 4 0.913
escape gen 8 4 4 2.033
loops gen 0 0 0 NA

raw benchmark files