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
gc_stack_roots gen 0 2 12 0.000
modules gen 0 0 185 0.000
fib_iter gen 7 7 882 0.008
loops gen 3 2 286 0.009
fib_recursive gen 10 9 876 0.012
asdl_generated gen 9 9 390 0.023
parse gen 28 22 718 0.039
classes gen 1 1 25 0.040
scoped_resource gen 40 40 967 0.042
containers gen 7 6 115 0.058
files gen 6 5 75 0.077
tuple_return_value gen 16 15 185 0.087
length gen 37 42 195 0.191
cartesian gen 82 80 318 0.258
escape gen 90 96 334 0.269
cgi gen 256 255 512 0.500
varargs gen 17 11 22 0.785
control_flow gen 209 160 111 1.883
pea_hello gen NA NA 10 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
cartesian gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
loops gen 3.7 3.9 8.7 0.42
modules gen 3.7 3.7 8.7 0.42
cgi gen 3.7 3.5 8.5 0.43
fib_recursive gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
fib_iter gen 3.8 3.5 8.5 0.45
length gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
files gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 8 0.000
fib_recursive gen 0 1 7 0.000
loops gen 1 1 8 0.109
parse gen 2 3 13 0.154
files gen 1 2 5 0.193
classes gen 2 2 10 0.199
asdl_generated gen 1 1 5 0.200
containers gen 5 4 21 0.228
gc_stack_roots gen 2 0 7 0.242
control_flow gen 2 2 6 0.333
scoped_resource gen 4 5 10 0.394
modules gen 2 2 4 0.435
tuple_return_value gen 3 3 6 0.504
length gen 5 3 9 0.559
cgi gen 4 5 7 0.572
varargs gen 22 29 31 0.721
cartesian gen 9 4 8 1.126
escape gen 11 6 6 1.825
pea_hello gen NA NA 8 NA

raw benchmark files