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
classes gen 0 0 22 0.000
fib_iter gen 8 8 897 0.008
modules gen 2 0 178 0.010
fib_recursive gen 11 11 880 0.012
loops gen 4 0 287 0.013
asdl_generated gen 11 11 378 0.028
containers gen 4 15 122 0.031
scoped_resource gen 36 41 1,057 0.034
parse gen 29 22 765 0.038
files gen 4 7 72 0.052
tuple_return_value gen 17 18 191 0.087
length gen 40 41 204 0.198
cartesian gen 92 80 327 0.282
escape gen 105 104 353 0.298
gc_stack_roots gen 2 0 4 0.442
cgi gen 262 247 508 0.515
varargs gen 12 29 15 0.776
control_flow gen 208 157 110 1.892

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 10.7 0.41
parse gen 3.7 3.8 7.5 0.49
cartesian gen 3.5 3.7 7.1 0.50
gc_stack_roots gen 3.4 3.4 6.8 0.50
fib_iter gen 3.5 3.8 6.9 0.51
asdl_generated gen 3.7 3.7 7.1 0.52
loops gen 3.8 3.8 7.2 0.53
modules gen 3.7 3.8 6.9 0.53
tuple_return_value gen 3.8 3.7 7.1 0.54
escape gen 3.7 3.7 6.8 0.54
fib_recursive gen 3.7 3.8 6.8 0.54
control_flow gen 3.8 3.8 6.9 0.55
files gen 3.8 3.9 6.9 0.55
length gen 3.8 3.8 6.9 0.55
scoped_resource gen 3.8 3.7 6.9 0.55
cgi gen 3.7 3.7 6.7 0.55
containers gen 28.5 28.6 47.8 0.60
varargs gen 5.5 5.4 6.9 0.79

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 8 0.000
cartesian gen 0 8 4 0.000
control_flow gen 0 4 4 0.000
escape gen 0 0 4 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 4 0.000
gc_stack_roots gen 0 2 8 0.000
loops gen 0 3 8 0.000
modules gen 0 2 8 0.000
parse gen 0 4 8 0.000
classes gen 3 3 9 0.378
files gen 4 0 4 0.928
containers gen 11 0 12 0.929
varargs gen 55 37 57 0.965
length gen 4 4 4 1.012
tuple_return_value gen 4 0 4 1.046
scoped_resource gen 12 4 8 1.498
cgi gen 8 8 4 1.981

raw benchmark files