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
modules gen 1 0 187 0.005
fib_iter gen 8 7 895 0.008
loops gen 3 2 299 0.010
fib_recursive gen 10 11 905 0.011
asdl_generated gen 10 9 396 0.025
classes gen 1 1 30 0.035
parse gen 28 25 763 0.036
scoped_resource gen 45 40 1,046 0.043
containers gen 7 6 112 0.063
files gen 6 8 79 0.080
tuple_return_value gen 19 17 194 0.096
gc_stack_roots gen 2 2 12 0.146
length gen 35 39 221 0.159
cartesian gen 86 82 340 0.252
escape gen 100 97 354 0.283
cgi gen 265 266 522 0.509
varargs gen 18 15 21 0.874
control_flow gen 203 161 117 1.736
pea_hello gen NA NA 12 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
modules gen 3.5 3.8 8.7 0.41
escape gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.5 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.9 8.5 0.43
scoped_resource gen 3.7 3.8 8.4 0.44
length gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
fib_iter gen 3.8 3.8 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
containers gen 28.8 28.8 49.2 0.58
varargs gen 5.5 5.4 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 9 0.000
gc_stack_roots gen 0 0 7 0.000
modules gen 1 2 11 0.083
loops gen 1 1 9 0.114
tuple_return_value gen 1 2 7 0.148
containers gen 5 5 33 0.152
classes gen 2 2 13 0.160
fib_recursive gen 1 0 6 0.165
asdl_generated gen 1 2 6 0.168
files gen 1 0 6 0.174
parse gen 3 2 14 0.218
scoped_resource gen 3 7 11 0.269
control_flow gen 3 2 8 0.375
escape gen 5 7 9 0.553
cgi gen 5 3 9 0.555
varargs gen 21 25 33 0.649
cartesian gen 7 5 7 1.000
length gen 9 6 7 1.295
pea_hello gen NA NA 6 NA

raw benchmark files