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
loops gen 0 3 295 0.000
fib_iter gen 8 4 894 0.008
modules gen 2 2 185 0.010
fib_recursive gen 11 11 885 0.012
asdl_generated gen 7 6 388 0.019
parse gen 30 23 762 0.040
scoped_resource gen 44 38 1,026 0.043
tuple_return_value gen 12 18 186 0.063
files gen 7 4 79 0.092
containers gen 12 9 120 0.098
gc_stack_roots gen 2 2 16 0.108
classes gen 3 3 27 0.121
length gen 37 41 211 0.174
cartesian gen 87 82 357 0.244
escape gen 97 104 370 0.262
cgi gen 265 267 527 0.502
varargs gen 16 12 20 0.822
control_flow gen 204 159 110 1.859
pea_hello gen NA NA 11 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
cartesian gen 3.5 3.5 8.5 0.42
fib_recursive gen 3.5 3.9 8.5 0.42
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
length gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.5 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
loops gen 3.9 3.5 8.7 0.45
files gen 3.8 3.8 8.3 0.46
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 0 12 0.000
fib_iter gen 0 4 8 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 4 4 0.000
gc_stack_roots gen 0 0 4 0.000
modules gen 0 0 12 0.000
parse gen 0 4 4 0.000
containers gen 4 5 24 0.163
scoped_resource gen 4 8 16 0.248
control_flow gen 4 4 12 0.340
cgi gen 4 0 8 0.494
loops gen 4 0 8 0.500
tuple_return_value gen 8 0 12 0.645
varargs gen 49 53 60 0.822
asdl_generated gen 4 6 4 0.914
escape gen 8 0 8 0.966
cartesian gen 4 4 4 0.986
length gen 8 4 4 2.051
pea_hello gen NA NA 7 NA

raw benchmark files