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 8 8 882 0.009
modules gen 2 0 187 0.010
loops gen 4 0 299 0.012
fib_recursive gen 11 11 884 0.013
asdl_generated gen 7 7 378 0.019
parse gen 26 27 787 0.033
scoped_resource gen 44 47 1,019 0.043
containers gen 7 4 118 0.058
tuple_return_value gen 15 18 187 0.082
files gen 7 4 78 0.093
classes gen 3 3 30 0.107
gc_stack_roots gen 2 2 12 0.149
length gen 41 46 209 0.195
escape gen 95 85 361 0.264
cartesian gen 91 82 328 0.277
cgi gen 251 254 524 0.479
varargs gen 23 15 20 1.126
control_flow gen 211 159 106 1.998
pea_hello gen NA NA 18 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
parse gen 3.8 3.8 9.1 0.42
cgi gen 3.5 3.4 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
gc_stack_roots gen 3.7 3.4 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.5 8.4 0.44
length gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.5 28.6 49.2 0.58
varargs gen 5.6 5.5 8.5 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
cartesian gen 0 4 12 0.000
classes gen 0 0 8 0.000
control_flow gen 0 4 16 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 8 0.000
files gen 0 4 4 0.000
gc_stack_roots gen 0 0 8 0.000
loops gen 0 3 12 0.000
modules gen 0 2 8 0.000
tuple_return_value gen 4 0 16 0.241
scoped_resource gen 4 0 16 0.251
asdl_generated gen 4 4 12 0.300
cgi gen 4 0 12 0.340
parse gen 4 0 12 0.360
containers gen 10 11 24 0.419
length gen 4 0 8 0.461
varargs gen 42 50 61 0.688
escape gen 12 16 4 2.969
pea_hello gen NA NA 0 NA

raw benchmark files