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
gc_stack_roots gen 0 1 16 0.000
fib_iter gen 7 7 935 0.007
modules gen 2 1 187 0.009
loops gen 3 2 303 0.009
fib_recursive gen 11 10 895 0.012
asdl_generated gen 6 8 386 0.017
parse gen 28 26 766 0.037
scoped_resource gen 44 43 1,030 0.043
files gen 6 5 81 0.077
tuple_return_value gen 17 17 192 0.089
containers gen 11 6 114 0.097
classes gen 3 1 29 0.104
length gen 41 44 212 0.194
cartesian gen 83 80 337 0.246
escape gen 98 95 356 0.274
cgi gen 267 265 517 0.516
varargs gen 17 16 22 0.787
control_flow gen 210 164 115 1.819
pea_hello gen NA NA 11 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.3 12.3 0.36
asdl_generated gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
cartesian gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.5 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
modules gen 3.9 3.8 8.5 0.46
loops gen 3.9 3.8 8.4 0.47
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.5 5.4 8.5 0.65
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 2 9 0.000
control_flow gen 0 2 6 0.000
fib_recursive gen 0 1 8 0.000
modules gen 0 1 10 0.000
loops gen 1 1 9 0.103
containers gen 3 5 28 0.107
fib_iter gen 1 1 8 0.118
parse gen 2 1 9 0.223
cgi gen 3 3 12 0.250
files gen 1 3 4 0.257
scoped_resource gen 3 3 11 0.273
tuple_return_value gen 2 1 7 0.287
gc_stack_roots gen 2 1 3 0.565
asdl_generated gen 4 3 7 0.607
varargs gen 22 24 32 0.700
length gen 5 1 7 0.715
escape gen 8 8 11 0.731
cartesian gen 8 7 5 1.599
pea_hello gen NA NA 7 NA

raw benchmark files