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 8 78 0.000
gc_stack_roots gen 0 2 10 0.000
loops gen 0 3 316 0.000
fib_iter gen 8 8 935 0.008
modules gen 2 2 183 0.010
fib_recursive gen 11 7 900 0.012
asdl_generated gen 11 7 382 0.029
containers gen 4 7 116 0.033
parse gen 30 27 772 0.039
scoped_resource gen 48 41 1,038 0.046
tuple_return_value gen 11 18 192 0.060
classes gen 3 3 30 0.106
length gen 33 38 208 0.158
varargs gen 8 28 35 0.231
cartesian gen 91 86 333 0.274
escape gen 106 94 360 0.293
cgi gen 261 267 520 0.503
control_flow gen 204 161 113 1.813
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.5 0.35
escape gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.5 8.4 0.42
cgi gen 3.7 3.5 8.5 0.43
control_flow gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.8 8.4 0.44
gc_stack_roots gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.8 3.9 8.5 0.45
length gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
files gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
containers gen 28.5 28.6 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
asdl_generated gen 0 4 12 0.000
cartesian gen 0 0 8 0.000
classes gen 0 0 8 0.000
escape gen 0 8 4 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 4 4 0.000
modules gen 0 0 12 0.000
parse gen 0 0 16 0.000
scoped_resource gen 0 4 12 0.000
gc_stack_roots gen 2 0 10 0.184
containers gen 12 7 32 0.362
control_flow gen 4 0 8 0.498
tuple_return_value gen 8 0 8 0.957
cgi gen 8 0 8 1.006
varargs gen 57 37 43 1.323
length gen 12 8 8 1.541
files gen 7 0 4 1.776
loops gen 4 0 0 inf
pea_hello gen NA NA 13 NA

raw benchmark files