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 1 1 204 0.005
fib_iter gen 8 7 949 0.008
fib_recursive gen 10 10 895 0.012
loops gen 4 2 302 0.014
asdl_generated gen 9 8 393 0.022
classes gen 1 2 35 0.032
parse gen 28 22 791 0.035
scoped_resource gen 45 45 1,074 0.041
containers gen 7 6 121 0.058
tuple_return_value gen 17 18 195 0.086
files gen 7 5 77 0.091
gc_stack_roots gen 1 0 9 0.106
length gen 43 43 230 0.188
cartesian gen 91 80 336 0.270
escape gen 100 101 360 0.277
varargs gen 11 19 26 0.411
cgi gen 268 268 525 0.511
control_flow gen 208 164 114 1.829
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.3 4.5 12.3 0.35
gc_stack_roots gen 3.4 3.5 8.5 0.40
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
files gen 3.7 3.7 8.5 0.43
length gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
loops gen 3.8 3.8 8.7 0.44
modules gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.9 8.5 0.45
fib_iter gen 3.8 3.5 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.9 8.4 0.45
fib_recursive gen 3.9 3.5 8.5 0.46
containers gen 28.9 28.8 49.0 0.59
varargs gen 5.5 5.4 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 9 0.000
loops gen 0 1 9 0.000
gc_stack_roots gen 1 2 11 0.087
files gen 1 3 8 0.124
fib_recursive gen 1 1 8 0.129
length gen 2 3 13 0.154
classes gen 2 1 14 0.160
cartesian gen 1 6 6 0.166
containers gen 6 5 24 0.249
cgi gen 2 4 8 0.250
parse gen 3 5 12 0.257
control_flow gen 3 1 10 0.301
tuple_return_value gen 3 1 8 0.372
modules gen 2 1 5 0.376
asdl_generated gen 3 4 7 0.455
escape gen 6 2 13 0.465
scoped_resource gen 4 1 6 0.660
varargs gen 29 20 30 0.939
pea_hello gen NA NA 10 NA

raw benchmark files