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 2 4 0.000
fib_iter gen 4 8 903 0.004
modules gen 2 2 179 0.010
fib_recursive gen 11 11 882 0.012
loops gen 4 3 300 0.012
asdl_generated gen 11 7 374 0.029
parse gen 26 23 759 0.034
scoped_resource gen 44 42 1,032 0.042
files gen 4 8 69 0.055
containers gen 8 11 126 0.065
tuple_return_value gen 21 14 190 0.110
classes gen 4 0 24 0.150
length gen 45 40 211 0.213
escape gen 92 104 353 0.262
cartesian gen 90 83 326 0.278
cgi gen 261 265 509 0.513
varargs gen 25 8 28 0.876
control_flow gen 208 157 116 1.797

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 6.9 0.49
parse gen 3.8 3.9 7.5 0.51
cartesian gen 3.5 3.7 6.9 0.51
modules gen 3.7 3.7 7.1 0.52
scoped_resource gen 3.7 3.8 7.1 0.52
asdl_generated 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
fib_recursive gen 3.7 3.7 6.9 0.53
length 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.7 7.1 0.54
fib_iter gen 3.7 3.8 6.8 0.54
control_flow gen 3.8 3.9 6.9 0.55
files gen 3.8 3.8 6.8 0.56
containers gen 28.5 28.5 47.8 0.60
varargs gen 5.5 5.6 6.9 0.79

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 4 4 0.000
classes gen 0 3 8 0.000
control_flow gen 0 4 4 0.000
fib_recursive gen 0 0 8 0.000
length gen 0 4 4 0.000
loops gen 0 0 8 0.000
modules gen 0 0 8 0.000
tuple_return_value gen 0 5 4 0.000
gc_stack_roots gen 2 0 8 0.222
containers gen 8 4 20 0.413
parse gen 4 4 8 0.463
files gen 4 0 8 0.463
fib_iter gen 4 0 8 0.480
cartesian gen 4 4 8 0.517
varargs gen 42 58 45 0.929
scoped_resource gen 4 4 4 0.991
cgi gen 8 4 4 2.006
escape gen 12 0 4 3.010

raw benchmark files