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++-NoSouffle C++-Souffle Python C++ : Python
gc_stack_roots gen 0 1 0 12 0.000
modules gen 0 0 1 204 0.000
fib_recursive gen 5 5 5 992 0.005
loops gen 2 2 1 318 0.007
fib_iter gen 6 6 5 739 0.009
asdl_generated gen 9 10 8 513 0.017
scoped_resource gen 30 28 28 1,246 0.024
parse gen 22 25 22 895 0.024
classes gen 1 1 0 33 0.034
containers gen 4 4 3 110 0.037
tuple_return_value gen 12 15 13 215 0.057
files gen 6 5 5 89 0.068
length gen 31 30 29 223 0.140
cartesian gen 64 72 69 367 0.175
escape gen 86 93 84 380 0.225
cgi gen 183 175 185 655 0.280
varargs gen 14 19 15 23 0.616
control_flow gen 123 168 124 133 0.924

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++-NoSouffle C++-Souffle Python C++ : Python
classes gen 4.5 4.6 4.3 11.6 0.38
asdl_generated gen 3.3 3.5 3.3 7.6 0.43
gc_stack_roots gen 3.4 3.4 3.4 7.9 0.43
cartesian gen 3.5 3.5 3.5 7.7 0.46
escape gen 3.5 3.7 3.5 7.7 0.46
loops gen 3.5 3.7 3.7 7.7 0.46
scoped_resource gen 3.5 3.7 3.7 7.7 0.46
cgi gen 3.7 3.7 3.5 7.7 0.47
control_flow gen 3.7 3.8 3.9 7.7 0.47
fib_recursive gen 3.7 3.7 3.8 7.7 0.47
files gen 3.7 3.8 3.8 7.7 0.47
modules gen 3.7 3.7 3.7 7.7 0.47
fib_iter gen 3.7 3.7 3.5 7.6 0.48
length gen 3.7 3.7 3.7 7.6 0.48
parse gen 3.9 3.8 3.9 8.0 0.49
tuple_return_value gen 3.8 3.9 3.7 7.7 0.49
containers gen 28.5 28.6 28.5 48.4 0.59
varargs gen 5.5 5.6 5.5 7.9 0.70

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-NoSouffle C++-Souffle Python C++ : Python
fib_iter gen 0 0 1 4 0.000
files gen 0 1 1 5 0.000
loops gen 0 1 1 3 0.000
scoped_resource gen 0 4 2 8 0.000
modules gen 1 1 0 8 0.157
length gen 1 2 3 4 0.251
gc_stack_roots gen 1 0 1 4 0.266
classes gen 1 2 2 4 0.281
control_flow gen 2 0 2 7 0.285
escape gen 1 1 1 3 0.336
tuple_return_value gen 2 1 1 5 0.406
containers gen 8 7 9 19 0.430
fib_recursive gen 1 1 1 2 0.450
asdl_generated gen 1 0 1 2 0.473
cgi gen 2 3 0 4 0.501
cartesian gen 4 3 1 6 0.659
parse gen 2 1 2 3 0.663
varargs gen 10 5 9 14 0.723

raw benchmark files