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 0 0 189 0.000
fib_iter gen 8 8 877 0.009
fib_recursive gen 9 10 899 0.010
loops gen 4 2 300 0.013
asdl_generated gen 10 11 390 0.025
parse gen 28 25 769 0.037
scoped_resource gen 42 43 1,058 0.040
containers gen 6 15 125 0.046
gc_stack_roots gen 1 1 12 0.073
classes gen 2 1 27 0.079
files gen 6 7 76 0.083
tuple_return_value gen 18 17 199 0.093
length gen 40 43 213 0.190
cartesian gen 87 74 338 0.257
escape gen 102 98 361 0.282
cgi gen 265 267 531 0.498
varargs gen 20 14 22 0.918
control_flow gen 208 160 118 1.762
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.6 4.3 12.3 0.37
parse gen 3.7 3.9 9.0 0.41
escape gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
cartesian gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.8 8.4 0.44
asdl_generated gen 3.7 3.7 8.3 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
tuple_return_value gen 3.9 3.7 8.4 0.47
containers gen 28.9 28.6 49.2 0.59
varargs gen 5.5 5.6 8.1 0.68
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 0 7 0.000
loops gen 0 1 9 0.000
classes gen 1 2 12 0.089
gc_stack_roots gen 1 1 8 0.110
files gen 1 1 8 0.131
tuple_return_value gen 1 1 6 0.162
asdl_generated gen 1 0 5 0.194
modules gen 2 2 9 0.201
parse gen 2 2 10 0.203
fib_recursive gen 2 1 8 0.248
control_flow gen 2 2 8 0.250
containers gen 7 3 23 0.291
scoped_resource gen 6 2 11 0.544
varargs gen 19 26 33 0.581
length gen 4 2 6 0.655
cartesian gen 5 12 6 0.831
escape gen 5 6 6 0.832
cgi gen 5 2 5 0.998
pea_hello gen NA NA 7 NA

raw benchmark files