mycpp Code Generation

Measure the speedup from mycpp, and the resource usage.

Source code: oils/mycpp/examples

User Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 5 6 1,124 0.005
modules gen 1 1 230 0.006
fib_iter gen 7 7 945 0.007
loops gen 3 1 354 0.009
asdl_generated gen 9 6 510 0.018
scoped_resource gen 30 26 1,392 0.022
parse gen 25 24 962 0.026
containers gen 4 5 126 0.033
tuple_return_value gen 17 12 245 0.068
files gen 7 5 100 0.069
gc_stack_roots gen 1 0 15 0.094
classes gen 3 2 29 0.099
length gen 29 37 241 0.122
cartesian gen 75 69 399 0.188
escape gen 103 86 435 0.237
cgi gen 248 256 721 0.344
varargs gen 23 19 36 0.639
control_flow gen 175 133 149 1.174

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.3 4.5 11.6 0.37
gc_stack_roots gen 3.4 3.3 7.7 0.44
asdl_generated gen 3.4 3.3 7.6 0.45
escape gen 3.4 3.5 7.6 0.45
length gen 3.4 3.5 7.6 0.45
fib_recursive gen 3.5 3.7 7.7 0.46
cartesian gen 3.5 3.4 7.6 0.47
cgi gen 3.5 3.5 7.6 0.47
loops gen 3.5 3.5 7.6 0.47
scoped_resource gen 3.5 3.7 7.6 0.47
parse gen 3.8 3.8 8.0 0.47
modules gen 3.7 3.4 7.7 0.47
fib_iter gen 3.7 3.7 7.6 0.48
files gen 3.7 3.7 7.5 0.49
control_flow gen 3.8 3.8 7.6 0.50
tuple_return_value gen 3.8 3.5 7.6 0.50
containers gen 28.6 28.5 48.3 0.59
varargs gen 5.5 5.5 7.6 0.72

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 1 14 0.000
fib_iter gen 0 0 12 0.000
files gen 0 2 7 0.000
gc_stack_roots gen 0 1 5 0.000
loops gen 0 2 6 0.000
modules gen 0 1 9 0.000
tuple_return_value gen 0 3 10 0.000
asdl_generated gen 1 4 10 0.100
escape gen 1 13 7 0.143
scoped_resource gen 1 4 7 0.144
fib_recursive gen 1 0 6 0.152
parse gen 2 3 10 0.199
containers gen 10 9 26 0.395
cartesian gen 4 6 9 0.444
control_flow gen 4 2 7 0.571
cgi gen 5 4 7 0.713
varargs gen 16 20 21 0.762
length gen 8 1 8 1.011

raw benchmark files