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 7 6 897 0.008
loops gen 3 3 291 0.010
modules gen 2 1 177 0.010
fib_recursive gen 10 10 888 0.011
asdl_generated gen 10 9 376 0.026
parse gen 28 24 772 0.037
scoped_resource gen 47 42 1,043 0.045
containers gen 7 4 112 0.064
classes gen 2 1 25 0.087
files gen 6 6 71 0.091
tuple_return_value gen 18 18 187 0.097
length gen 43 42 204 0.212
cartesian gen 73 83 334 0.219
escape gen 98 103 364 0.269
gc_stack_roots gen 1 0 3 0.288
cgi gen 252 265 517 0.487
varargs gen 16 14 19 0.844
control_flow gen 209 158 107 1.949

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.8 0.41
gc_stack_roots gen 3.4 3.7 6.9 0.49
parse gen 3.9 3.7 7.6 0.52
asdl_generated gen 3.7 3.7 7.1 0.52
cartesian gen 3.7 3.5 7.1 0.52
modules gen 3.7 3.7 7.1 0.52
scoped_resource gen 3.7 3.7 7.1 0.52
cgi gen 3.7 3.5 6.9 0.53
escape gen 3.7 3.5 6.9 0.53
files gen 3.7 3.8 6.9 0.53
length gen 3.7 3.7 6.9 0.53
loops gen 3.8 3.8 7.1 0.54
tuple_return_value gen 3.8 3.8 7.1 0.54
control_flow gen 3.8 3.9 6.9 0.55
fib_recursive gen 3.8 3.8 6.9 0.55
fib_iter gen 3.8 3.7 6.8 0.56
containers gen 28.9 28.8 47.6 0.61
varargs gen 5.6 5.4 6.9 0.81

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
modules gen 0 1 6 0.000
parse gen 1 3 10 0.102
gc_stack_roots gen 1 2 8 0.108
scoped_resource gen 1 4 9 0.111
loops gen 1 0 7 0.132
control_flow gen 1 2 7 0.142
asdl_generated gen 1 2 6 0.165
fib_iter gen 1 2 6 0.170
classes gen 1 2 6 0.175
files gen 1 2 5 0.184
fib_recursive gen 1 1 5 0.199
containers gen 5 7 23 0.224
length gen 2 3 7 0.287
tuple_return_value gen 2 1 6 0.338
cgi gen 3 4 5 0.600
varargs gen 24 27 26 0.925
escape gen 9 7 5 1.796
cartesian gen 18 4 4 4.515

raw benchmark files