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
modules gen 0 1 188 0.000
loops gen 2 1 301 0.007
fib_iter gen 8 6 942 0.008
fib_recursive gen 10 10 892 0.011
asdl_generated gen 6 9 388 0.016
parse gen 27 25 769 0.035
scoped_resource gen 41 45 1,044 0.040
containers gen 7 5 113 0.061
files gen 6 7 76 0.074
classes gen 2 2 29 0.075
gc_stack_roots gen 1 1 11 0.081
tuple_return_value gen 18 16 195 0.090
length gen 38 42 208 0.184
cartesian gen 83 81 336 0.246
escape gen 98 97 357 0.275
cgi gen 270 263 529 0.510
varargs gen 18 15 30 0.596
control_flow gen 208 163 121 1.716
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.6 4.5 12.3 0.37
gc_stack_roots gen 3.4 3.5 8.5 0.40
parse gen 3.7 3.9 9.0 0.41
escape gen 3.5 3.7 8.4 0.42
modules gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.5 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
fib_iter 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.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
length gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.9 49.1 0.58
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 2 6 0.000
classes gen 1 1 10 0.108
gc_stack_roots gen 1 1 8 0.112
containers gen 5 5 33 0.149
control_flow gen 1 1 6 0.166
cgi gen 1 2 6 0.167
modules gen 2 1 10 0.176
loops gen 2 2 10 0.210
fib_recursive gen 2 1 9 0.212
tuple_return_value gen 2 2 9 0.230
files gen 2 1 8 0.233
parse gen 3 2 12 0.252
length gen 6 4 9 0.670
scoped_resource gen 6 1 7 0.846
varargs gen 22 25 24 0.910
cartesian gen 9 5 8 1.122
asdl_generated gen 5 2 4 1.265
escape gen 7 7 3 2.345
pea_hello gen NA NA 4 NA

raw benchmark files