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 1 1 189 0.005
fib_iter gen 8 8 903 0.008
loops gen 3 3 301 0.010
fib_recursive gen 11 11 891 0.012
asdl_generated gen 6 10 402 0.016
classes gen 1 2 28 0.036
parse gen 28 25 772 0.036
containers gen 5 6 117 0.042
scoped_resource gen 47 41 1,039 0.045
files gen 6 4 77 0.082
tuple_return_value gen 18 16 193 0.095
gc_stack_roots gen 2 0 12 0.143
length gen 42 38 208 0.201
cartesian gen 86 77 333 0.257
escape gen 101 98 356 0.285
cgi gen 266 267 526 0.505
varargs gen 16 19 23 0.687
control_flow gen 209 161 115 1.816
pea_hello gen NA NA 13 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
cartesian gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cgi gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
modules gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.3 0.46
containers gen 28.9 28.8 49.2 0.59
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 5 0.000
gc_stack_roots gen 0 2 7 0.000
modules gen 1 1 10 0.098
control_flow gen 1 3 9 0.112
scoped_resource gen 1 4 8 0.125
tuple_return_value gen 1 3 8 0.127
files gen 1 4 7 0.150
parse gen 2 2 12 0.167
classes gen 2 1 10 0.203
containers gen 7 5 29 0.240
loops gen 1 0 3 0.326
length gen 3 8 9 0.332
escape gen 4 6 8 0.501
cgi gen 5 2 9 0.557
cartesian gen 6 10 10 0.605
asdl_generated gen 4 1 7 0.614
varargs gen 24 20 30 0.790
pea_hello gen NA NA 5 NA

raw benchmark files