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 0 188 0.005
loops gen 2 2 299 0.007
fib_iter gen 7 6 898 0.008
fib_recursive gen 10 10 887 0.011
asdl_generated gen 10 6 382 0.026
parse gen 27 24 772 0.035
scoped_resource gen 40 40 1,043 0.038
containers gen 6 6 119 0.050
gc_stack_roots gen 1 0 13 0.067
classes gen 2 2 30 0.070
files gen 5 7 74 0.074
tuple_return_value gen 16 17 196 0.082
length gen 38 37 211 0.182
cartesian gen 87 77 359 0.241
escape gen 98 101 357 0.275
cgi gen 264 265 532 0.497
varargs gen 14 18 27 0.516
control_flow gen 208 159 119 1.757
pea_hello gen NA NA 12 NA

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 12.5 0.36
gc_stack_roots gen 3.4 3.5 8.4 0.41
cgi gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
escape gen 3.7 3.5 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
loops gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.5 8.4 0.45
control_flow gen 3.8 3.8 8.3 0.46
files gen 3.9 3.8 8.5 0.46
tuple_return_value gen 3.9 3.7 8.5 0.46
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
modules gen 1 2 9 0.110
asdl_generated gen 1 5 9 0.111
classes gen 1 1 9 0.116
fib_recursive gen 1 1 7 0.140
gc_stack_roots gen 1 2 6 0.144
fib_iter gen 1 2 6 0.166
control_flow gen 1 3 5 0.199
files gen 2 1 9 0.202
containers gen 6 5 25 0.238
loops gen 2 1 7 0.280
parse gen 4 3 12 0.324
cgi gen 6 4 9 0.665
tuple_return_value gen 3 1 4 0.757
length gen 6 8 7 0.864
varargs gen 26 21 26 0.996
cartesian gen 5 9 5 0.996
scoped_resource gen 8 5 8 0.998
escape gen 7 3 6 1.161
pea_hello gen NA NA 6 NA

raw benchmark files