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
gc_stack_roots gen 0 0 14 0.000
modules gen 1 1 193 0.004
fib_iter gen 8 7 898 0.008
loops gen 3 2 300 0.009
fib_recursive gen 10 9 897 0.011
asdl_generated gen 9 6 385 0.024
parse gen 28 22 765 0.037
scoped_resource gen 42 44 1,030 0.041
classes gen 2 1 28 0.057
containers gen 7 3 114 0.060
files gen 6 7 76 0.081
tuple_return_value gen 16 15 193 0.084
length gen 42 41 208 0.202
cartesian gen 88 85 333 0.264
escape gen 99 98 370 0.268
cgi gen 264 266 544 0.485
varargs gen 14 17 27 0.511
control_flow gen 209 161 112 1.858
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.2 0.35
modules gen 3.5 3.8 8.7 0.41
gc_stack_roots gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
asdl_generated gen 3.8 3.5 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_iter gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
loops gen 3.9 3.8 8.5 0.46
containers gen 28.8 28.9 49.2 0.58
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 6 0.000
control_flow gen 1 2 9 0.111
files gen 1 1 8 0.129
modules gen 1 1 6 0.145
loops gen 1 1 6 0.151
classes gen 2 2 10 0.160
fib_recursive gen 1 2 6 0.163
containers gen 5 7 28 0.175
parse gen 2 5 8 0.252
tuple_return_value gen 3 3 9 0.336
asdl_generated gen 2 5 6 0.338
gc_stack_roots gen 2 2 5 0.341
cartesian gen 3 2 7 0.429
scoped_resource gen 5 1 11 0.454
length gen 3 4 6 0.501
varargs gen 26 22 26 0.986
escape gen 6 6 6 1.004
cgi gen 6 3 4 1.498
pea_hello gen NA NA 7 NA

raw benchmark files