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
files gen 0 7 72 0.000
loops gen 0 0 287 0.000
fib_iter gen 8 4 880 0.009
asdl_generated gen 4 7 383 0.010
modules gen 2 2 180 0.010
fib_recursive gen 11 11 879 0.012
parse gen 29 27 767 0.038
scoped_resource gen 44 46 1,044 0.042
containers gen 10 10 113 0.091
tuple_return_value gen 21 11 179 0.115
classes gen 3 0 28 0.124
length gen 37 41 201 0.184
gc_stack_roots gen 2 2 8 0.220
cartesian gen 92 80 342 0.269
escape gen 105 106 347 0.303
cgi gen 265 248 519 0.510
varargs gen 23 33 24 0.976
control_flow gen 209 160 101 2.063

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 10.8 0.41
gc_stack_roots gen 3.4 3.4 6.9 0.49
cartesian gen 3.5 3.5 7.1 0.50
parse gen 3.9 3.9 7.6 0.52
cgi gen 3.7 3.7 7.1 0.52
scoped_resource gen 3.7 3.7 7.1 0.52
escape gen 3.5 3.5 6.8 0.52
fib_recursive gen 3.7 3.9 6.9 0.53
loops gen 3.8 3.8 7.1 0.54
asdl_generated gen 3.7 3.7 6.8 0.54
control_flow gen 3.7 3.7 6.8 0.54
fib_iter gen 3.8 3.7 6.9 0.55
files gen 3.8 3.8 6.9 0.55
modules gen 3.8 3.8 6.9 0.55
tuple_return_value gen 3.8 3.8 6.9 0.55
length gen 3.9 3.8 6.9 0.57
containers gen 28.7 28.6 47.6 0.60
varargs gen 5.5 5.6 6.9 0.79

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cartesian gen 0 8 8 0.000
classes gen 0 3 4 0.000
control_flow gen 0 0 16 0.000
escape gen 0 0 4 0.000
fib_iter gen 0 4 12 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 0 4 0.000
modules gen 0 0 4 0.000
parse gen 0 0 12 0.000
tuple_return_value gen 0 7 12 0.000
containers gen 5 5 24 0.213
loops gen 4 3 8 0.460
varargs gen 43 33 48 0.894
length gen 8 4 8 1.024
files gen 8 0 4 1.910
asdl_generated gen 7 4 0 inf
cgi gen 4 4 0 inf
scoped_resource gen 4 0 0 inf

raw benchmark files