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 8 0.000
fib_iter gen 8 8 877 0.009
modules gen 2 2 185 0.010
loops gen 4 3 371 0.011
fib_recursive gen 11 11 891 0.012
asdl_generated gen 7 12 381 0.019
parse gen 22 27 760 0.029
containers gen 4 15 111 0.036
scoped_resource gen 40 37 1,023 0.039
files gen 4 8 75 0.049
classes gen 3 3 35 0.093
tuple_return_value gen 20 15 189 0.103
length gen 41 38 209 0.194
cartesian gen 88 77 338 0.261
escape gen 100 95 352 0.285
cgi gen 270 267 521 0.518
varargs gen 23 20 33 0.711
control_flow gen 209 161 114 1.824
pea_hello gen NA NA 8 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.3 0.36
cartesian gen 3.4 3.5 8.4 0.41
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
scoped_resource gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
length gen 3.8 3.9 8.4 0.45
files gen 3.8 3.8 8.3 0.46
containers gen 28.5 28.6 49.1 0.58
varargs gen 5.5 5.6 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
cgi gen 0 0 4 0.000
classes gen 0 0 8 0.000
fib_iter gen 0 0 16 0.000
fib_recursive gen 0 0 8 0.000
loops gen 0 0 8 0.000
modules gen 0 0 12 0.000
tuple_return_value gen 0 4 16 0.000
gc_stack_roots gen 2 0 12 0.166
escape gen 4 12 16 0.250
files gen 4 0 12 0.313
containers gen 12 0 36 0.341
asdl_generated gen 4 0 8 0.448
length gen 4 8 8 0.459
parse gen 9 0 16 0.542
scoped_resource gen 8 8 12 0.667
varargs gen 42 45 49 0.869
control_flow gen 8 0 8 0.982
cartesian gen 4 8 4 0.995
pea_hello gen NA NA 11 NA

raw benchmark files