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 10 0.000
modules gen 0 0 190 0.000
fib_iter gen 8 8 906 0.008
loops gen 3 2 303 0.010
fib_recursive gen 10 10 896 0.011
asdl_generated gen 8 9 387 0.020
parse gen 25 25 777 0.033
scoped_resource gen 45 40 1,032 0.044
files gen 4 5 79 0.053
containers gen 8 5 125 0.063
classes gen 2 2 28 0.081
tuple_return_value gen 16 17 195 0.084
length gen 37 38 210 0.176
cartesian gen 84 81 339 0.249
escape gen 99 95 357 0.277
cgi gen 267 265 537 0.497
varargs gen 18 19 23 0.794
control_flow gen 210 163 116 1.816
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.37
gc_stack_roots gen 3.4 3.5 8.4 0.41
parse gen 3.9 3.8 9.1 0.43
cartesian gen 3.7 3.5 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
length gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
asdl_generated gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.7 8.4 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.8 49.1 0.58
varargs gen 5.5 5.5 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 0 6 0.000
loops gen 1 1 10 0.103
classes gen 1 1 10 0.117
fib_recursive gen 1 1 8 0.122
containers gen 4 6 22 0.178
gc_stack_roots gen 2 2 9 0.188
control_flow gen 2 1 8 0.251
modules gen 2 2 7 0.255
scoped_resource gen 3 6 9 0.334
parse gen 5 2 14 0.349
asdl_generated gen 3 2 8 0.366
cgi gen 3 4 8 0.375
tuple_return_value gen 3 1 6 0.480
files gen 3 2 6 0.517
length gen 7 8 11 0.636
varargs gen 21 21 31 0.687
escape gen 7 10 7 0.998
cartesian gen 7 6 6 1.157
pea_hello gen NA NA 7 NA

raw benchmark files