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 0 12 0.000
modules gen 1 1 188 0.005
loops gen 2 2 296 0.007
fib_iter gen 8 8 905 0.008
fib_recursive gen 10 11 889 0.011
asdl_generated gen 11 9 393 0.027
parse gen 29 25 797 0.037
scoped_resource gen 47 42 1,061 0.045
containers gen 6 9 112 0.053
files gen 5 5 77 0.070
tuple_return_value gen 16 17 193 0.081
classes gen 3 3 26 0.127
length gen 40 44 217 0.184
cartesian gen 88 81 331 0.267
escape gen 103 100 358 0.287
cgi gen 265 268 523 0.506
varargs gen 16 23 25 0.647
control_flow gen 208 161 116 1.802
pea_hello gen NA NA 14 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.6 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.5 0.40
fib_recursive gen 3.5 3.9 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.9 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
escape gen 3.7 3.7 8.4 0.44
length gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
asdl_generated gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.9 8.4 0.45
fib_iter gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
containers gen 28.9 28.9 49.2 0.59
varargs gen 5.5 5.4 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 1 12 0.000
fib_recursive gen 1 0 11 0.091
control_flow gen 1 2 10 0.100
modules gen 1 1 10 0.101
asdl_generated gen 1 2 6 0.162
containers gen 6 2 31 0.193
scoped_resource gen 2 4 10 0.201
files gen 2 3 10 0.214
loops gen 2 1 9 0.227
fib_iter gen 2 1 7 0.274
gc_stack_roots gen 2 2 7 0.312
escape gen 3 4 8 0.374
parse gen 3 3 8 0.377
tuple_return_value gen 4 2 6 0.653
varargs gen 23 17 31 0.749
length gen 6 2 7 0.854
cgi gen 6 1 4 1.498
cartesian gen 11 7 6 1.835
pea_hello gen NA NA 4 NA

raw benchmark files