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
fib_iter gen 7 8 942 0.007
modules gen 2 1 190 0.009
loops gen 3 2 300 0.009
fib_recursive gen 10 10 950 0.010
asdl_generated gen 9 10 385 0.023
parse gen 25 24 793 0.032
classes gen 1 2 28 0.037
scoped_resource gen 45 43 1,080 0.042
containers gen 8 4 121 0.065
files gen 6 6 78 0.080
tuple_return_value gen 16 16 193 0.084
gc_stack_roots gen 1 1 8 0.109
length gen 39 42 206 0.189
cartesian gen 84 79 337 0.249
escape gen 100 96 363 0.275
cgi gen 266 268 542 0.491
varargs gen 20 19 27 0.742
control_flow gen 208 173 117 1.786
pea_hello gen NA NA 13 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.3 0.36
gc_stack_roots gen 3.4 3.5 8.5 0.40
cartesian gen 3.5 3.7 8.5 0.42
escape gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.0 0.44
loops gen 3.8 3.8 8.7 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.3 0.46
control_flow gen 3.9 3.7 8.4 0.47
containers gen 28.9 28.8 49.2 0.59
varargs gen 5.5 5.6 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
modules gen 0 1 6 0.000
gc_stack_roots gen 1 1 11 0.079
files gen 1 2 8 0.130
fib_iter gen 1 0 7 0.136
fib_recursive gen 1 1 7 0.140
containers gen 4 6 23 0.171
loops gen 1 1 5 0.185
classes gen 2 1 10 0.207
asdl_generated gen 2 1 9 0.217
tuple_return_value gen 3 2 8 0.377
escape gen 4 9 7 0.571
length gen 6 4 10 0.597
parse gen 5 3 8 0.631
control_flow gen 3 0 4 0.744
scoped_resource gen 3 2 4 0.751
varargs gen 20 21 26 0.770
cgi gen 5 1 6 0.831
cartesian gen 9 7 8 1.136
pea_hello gen NA NA 5 NA

raw benchmark files