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 9 121 0.000
modules gen 0 2 192 0.000
fib_iter gen 4 8 898 0.004
fib_recursive gen 11 11 882 0.012
loops gen 4 0 306 0.012
asdl_generated gen 11 11 385 0.028
parse gen 26 23 783 0.034
scoped_resource gen 44 34 1,035 0.043
tuple_return_value gen 19 18 201 0.095
files gen 7 7 72 0.102
classes gen 3 3 23 0.137
length gen 36 41 198 0.182
gc_stack_roots gen 2 2 8 0.216
cartesian gen 75 78 331 0.228
escape gen 100 104 357 0.280
cgi gen 269 252 536 0.501
varargs gen 19 32 15 1.272
control_flow gen 207 158 114 1.816
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.5 4.5 12.5 0.36
gc_stack_roots gen 3.4 3.4 8.3 0.41
tuple_return_value gen 3.5 3.8 8.5 0.42
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.5 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
scoped_resource gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_iter gen 3.8 3.5 8.4 0.45
loops gen 3.9 3.7 8.5 0.46
files gen 3.9 3.8 8.4 0.47
containers gen 28.6 28.6 49.1 0.58
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 8 0.000
cgi gen 0 8 4 0.000
classes gen 0 0 16 0.000
control_flow gen 0 4 8 0.000
fib_recursive gen 0 0 16 0.000
files gen 0 0 12 0.000
gc_stack_roots gen 0 0 12 0.000
loops gen 0 3 8 0.000
tuple_return_value gen 0 0 8 0.000
modules gen 2 0 12 0.152
escape gen 4 0 12 0.333
scoped_resource gen 4 11 12 0.334
length gen 8 4 20 0.405
parse gen 4 4 8 0.472
containers gen 16 5 24 0.643
varargs gen 47 32 65 0.718
fib_iter gen 4 0 4 0.949
cartesian gen 16 8 8 1.988
pea_hello gen NA NA 7 NA

raw benchmark files