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
containers gen 0 7 116 0.000
loops gen 0 3 304 0.000
fib_iter gen 8 4 940 0.008
modules gen 2 2 196 0.009
fib_recursive gen 11 11 885 0.012
asdl_generated gen 7 11 399 0.018
parse gen 26 27 764 0.034
scoped_resource gen 44 37 1,032 0.043
tuple_return_value gen 19 18 196 0.097
files gen 7 4 75 0.099
gc_stack_roots gen 2 2 16 0.112
classes gen 3 3 27 0.118
length gen 26 47 207 0.125
escape gen 89 100 355 0.252
cartesian gen 87 72 330 0.263
varargs gen 15 23 40 0.386
cgi gen 268 252 523 0.513
control_flow gen 207 161 118 1.761
pea_hello gen NA NA 4 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
asdl_generated gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
cgi gen 3.5 3.5 8.3 0.43
escape gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
loops 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.9 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.3 0.46
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.5 5.5 8.4 0.66
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 11 0.000
control_flow gen 0 0 4 0.000
fib_iter gen 0 4 8 0.000
fib_recursive gen 0 0 8 0.000
files gen 0 4 8 0.000
gc_stack_roots gen 0 0 4 0.000
modules gen 0 0 4 0.000
tuple_return_value gen 0 0 4 0.000
parse gen 4 0 16 0.271
loops gen 4 0 12 0.319
cartesian gen 4 12 12 0.346
scoped_resource gen 4 8 8 0.501
containers gen 15 7 24 0.624
asdl_generated gen 4 0 4 0.895
varargs gen 50 42 40 1.254
length gen 18 0 12 1.543
escape gen 16 4 8 2.035
pea_hello gen NA NA 15 NA

raw benchmark files