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 1 13 0.000
modules gen 1 0 191 0.005
fib_iter gen 7 8 906 0.007
loops gen 3 2 303 0.010
fib_recursive gen 10 12 898 0.011
asdl_generated gen 8 8 383 0.021
parse gen 26 24 770 0.034
scoped_resource gen 46 41 1,038 0.044
files gen 4 7 77 0.047
classes gen 2 2 28 0.076
containers gen 9 7 117 0.077
tuple_return_value gen 17 18 195 0.085
length gen 39 44 209 0.187
cartesian gen 83 78 359 0.230
escape gen 100 95 364 0.276
cgi gen 265 267 534 0.497
varargs gen 15 13 29 0.521
control_flow gen 207 169 114 1.812
pea_hello gen NA NA 10 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.3 12.2 0.36
gc_stack_roots gen 3.4 3.4 8.5 0.40
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.7 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.4 0.44
length gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
loops gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
control_flow gen 0 0 8 0.000
classes gen 1 1 11 0.097
fib_recursive gen 1 0 9 0.111
loops gen 1 1 6 0.163
modules gen 1 2 6 0.167
fib_iter gen 1 0 6 0.181
scoped_resource gen 2 5 10 0.203
containers gen 6 4 28 0.213
gc_stack_roots gen 2 1 7 0.249
asdl_generated gen 3 3 11 0.269
files gen 4 1 7 0.518
tuple_return_value gen 3 1 5 0.586
length gen 6 2 10 0.601
escape gen 5 9 7 0.717
parse gen 5 3 6 0.827
cgi gen 5 2 5 0.998
cartesian gen 9 8 9 0.998
varargs gen 24 26 24 1.008
pea_hello gen NA NA 8 NA

raw benchmark files