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 0 1 187 0.000
fib_iter gen 7 5 889 0.008
loops gen 3 3 309 0.010
fib_recursive gen 10 10 890 0.011
asdl_generated gen 10 10 385 0.026
classes gen 1 1 27 0.029
parse gen 28 26 780 0.036
scoped_resource gen 43 41 1,046 0.041
containers gen 8 6 124 0.063
files gen 5 7 78 0.067
gc_stack_roots gen 1 2 13 0.074
tuple_return_value gen 17 14 195 0.089
length gen 43 41 209 0.207
cartesian gen 84 81 342 0.245
escape gen 101 97 361 0.281
cgi gen 266 261 532 0.500
varargs gen 20 16 29 0.702
control_flow gen 207 158 119 1.738
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.4 8.4 0.41
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.5 8.4 0.42
cartesian gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
modules gen 3.8 3.8 8.7 0.44
files gen 3.8 3.8 8.5 0.45
control_flow 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.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
loops gen 3.9 3.8 8.5 0.46
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 3 10 0.000
asdl_generated gen 1 1 8 0.127
fib_recursive gen 1 1 7 0.139
modules gen 2 1 11 0.156
gc_stack_roots gen 1 0 6 0.161
loops gen 1 0 6 0.173
containers gen 4 5 21 0.186
control_flow gen 1 2 5 0.200
classes gen 2 2 11 0.215
length gen 2 4 9 0.223
parse gen 2 1 7 0.285
tuple_return_value gen 2 4 6 0.340
files gen 2 1 6 0.350
varargs gen 19 23 24 0.806
scoped_resource gen 6 5 6 1.000
escape gen 4 6 4 1.003
cartesian gen 8 6 7 1.139
cgi gen 4 6 3 1.334
pea_hello gen NA NA 5 NA

raw benchmark files