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 7 943 0.008
modules gen 2 2 187 0.009
fib_recursive gen 9 10 897 0.010
loops gen 4 2 322 0.012
asdl_generated gen 10 10 396 0.024
parse gen 28 23 780 0.036
scoped_resource gen 46 42 1,042 0.044
containers gen 6 4 124 0.052
classes gen 2 3 27 0.076
files gen 6 6 80 0.077
gc_stack_roots gen 1 1 10 0.083
tuple_return_value gen 18 16 188 0.094
length gen 39 38 209 0.187
cartesian gen 87 79 330 0.263
escape gen 101 97 356 0.282
cgi gen 266 265 533 0.499
varargs gen 19 19 26 0.730
control_flow gen 215 165 119 1.808
pea_hello gen NA NA 16 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.3 4.5 12.3 0.35
gc_stack_roots gen 3.4 3.4 8.5 0.40
cgi gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
cartesian gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
fib_recursive gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
asdl_generated gen 3.8 3.8 8.4 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
loops gen 3.9 3.9 8.4 0.47
containers gen 28.8 28.6 49.2 0.58
varargs gen 5.5 5.5 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
fib_iter gen 0 1 6 0.000
loops gen 0 1 8 0.000
modules gen 0 0 9 0.000
gc_stack_roots gen 1 1 9 0.093
classes gen 1 1 11 0.093
control_flow gen 1 2 7 0.143
asdl_generated gen 1 1 7 0.153
parse gen 2 4 12 0.169
tuple_return_value gen 2 2 11 0.180
scoped_resource gen 2 4 9 0.221
containers gen 5 6 24 0.224
fib_recursive gen 2 1 7 0.280
files gen 1 1 3 0.344
cartesian gen 5 7 10 0.505
length gen 6 8 9 0.669
varargs gen 21 20 27 0.777
cgi gen 4 4 5 0.800
escape gen 5 6 6 0.840
pea_hello gen NA NA 1 NA

raw benchmark files