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 11 883 0.008
fib_iter gen 8 8 898 0.009
modules gen 2 2 182 0.010
loops gen 4 0 308 0.014
asdl_generated gen 11 11 379 0.029
parse gen 27 27 787 0.035
scoped_resource gen 41 42 1,042 0.039
containers gen 8 10 121 0.066
files gen 7 8 84 0.089
tuple_return_value gen 19 19 185 0.103
classes gen 3 0 25 0.129
gc_stack_roots gen 2 2 13 0.143
length gen 45 41 209 0.213
cartesian gen 81 86 338 0.238
escape gen 103 104 362 0.283
cgi gen 265 249 524 0.507
varargs gen 19 16 16 1.203
control_flow gen 207 158 119 1.733
pea_hello gen NA NA 9 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.6 12.1 0.37
escape gen 3.5 3.5 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.7 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
control_flow gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
files gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.7 3.8 8.1 0.45
loops gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.8 8.7 0.45
length gen 3.8 3.8 8.3 0.46
fib_iter gen 3.9 3.8 8.5 0.46
containers gen 28.7 28.4 49.2 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 12 0.000
classes gen 0 3 17 0.000
control_flow gen 0 4 8 0.000
fib_iter gen 0 0 12 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 4 12 0.000
loops gen 0 3 8 0.000
modules gen 0 0 16 0.000
tuple_return_value gen 0 0 16 0.000
fib_recursive gen 4 0 16 0.228
containers gen 8 5 28 0.284
parse gen 4 0 8 0.487
scoped_resource gen 8 4 16 0.506
varargs gen 47 49 65 0.722
escape gen 4 0 4 0.990
cgi gen 4 4 4 0.990
cartesian gen 12 0 12 1.014
files gen 0 0 0 NA
pea_hello gen NA NA 9 NA

raw benchmark files