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_iter gen 8 8 936 0.008
modules gen 2 2 193 0.010
fib_recursive gen 11 11 885 0.012
loops gen 4 3 300 0.013
asdl_generated gen 11 11 384 0.028
parse gen 26 23 775 0.034
scoped_resource gen 47 42 1,032 0.046
files gen 4 8 72 0.050
classes gen 3 3 35 0.092
tuple_return_value gen 19 15 195 0.099
containers gen 16 11 134 0.118
gc_stack_roots gen 2 0 12 0.141
length gen 46 41 207 0.221
cartesian gen 87 78 327 0.267
escape gen 101 99 369 0.275
cgi gen 264 268 528 0.500
varargs gen 27 12 24 1.133
control_flow gen 206 163 114 1.800
pea_hello gen NA NA 14 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.6 4.5 12.3 0.37
gc_stack_roots gen 3.5 3.7 8.5 0.42
cgi gen 3.5 3.5 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
fib_recursive gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.5 8.5 0.45
length gen 3.8 3.5 8.5 0.45
modules gen 3.8 3.9 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.5 28.5 49.1 0.58
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
asdl_generated gen 0 0 8 0.000
classes gen 0 0 4 0.000
containers gen 0 4 12 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 2 8 0.000
length gen 0 4 8 0.000
loops gen 0 0 4 0.000
modules gen 0 0 4 0.000
scoped_resource gen 0 4 4 0.000
tuple_return_value gen 0 4 8 0.000
parse gen 4 4 16 0.271
files gen 4 0 12 0.302
cartesian gen 4 8 12 0.331
control_flow gen 4 0 8 0.484
cgi gen 4 0 8 0.500
varargs gen 39 53 56 0.694
escape gen 4 4 4 0.972
pea_hello gen NA NA 5 NA

raw benchmark files