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 1 189 0.005
loops gen 2 3 304 0.006
fib_iter gen 6 7 890 0.006
fib_recursive gen 11 10 901 0.012
asdl_generated gen 7 9 386 0.018
parse gen 29 23 768 0.038
scoped_resource gen 46 41 1,045 0.044
classes gen 2 2 31 0.051
containers gen 6 7 114 0.052
files gen 6 6 76 0.083
tuple_return_value gen 18 15 194 0.093
gc_stack_roots gen 2 0 11 0.158
length gen 38 41 213 0.178
cartesian gen 86 80 332 0.260
escape gen 93 96 356 0.263
varargs gen 11 17 26 0.423
cgi gen 267 256 528 0.506
control_flow gen 209 159 117 1.780
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.3 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.5 8.4 0.42
fib_recursive gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
asdl_generated gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.6 5.6 8.5 0.66
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_recursive gen 0 1 7 0.000
gc_stack_roots gen 0 2 8 0.000
parse gen 1 4 11 0.092
modules gen 1 1 8 0.109
files gen 1 1 7 0.129
tuple_return_value gen 1 3 6 0.167
fib_iter gen 2 1 10 0.190
containers gen 6 3 27 0.219
classes gen 2 1 7 0.226
loops gen 2 0 7 0.258
control_flow gen 2 2 7 0.285
scoped_resource gen 2 4 5 0.399
cgi gen 3 1 7 0.429
asdl_generated gen 4 2 7 0.564
cartesian gen 7 5 10 0.697
length gen 7 4 7 1.000
varargs gen 28 23 27 1.036
escape gen 13 7 7 1.843
pea_hello gen NA NA 5 NA

raw benchmark files