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
classes gen 0 1 25 0.000
modules gen 0 0 188 0.000
loops gen 2 2 298 0.006
fib_iter gen 6 6 896 0.007
fib_recursive gen 9 10 889 0.010
asdl_generated gen 7 11 380 0.019
parse gen 25 23 775 0.033
scoped_resource gen 45 44 1,030 0.044
containers gen 6 8 117 0.051
gc_stack_roots gen 1 0 11 0.079
tuple_return_value gen 16 17 192 0.085
files gen 7 6 74 0.098
length gen 40 40 205 0.195
cartesian gen 85 79 346 0.247
escape gen 103 103 358 0.289
cgi gen 265 263 529 0.501
varargs gen 14 16 28 0.503
control_flow gen 206 163 111 1.866
pea_hello gen NA NA 10 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
cgi gen 3.5 3.7 8.4 0.42
scoped_resource gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
gc_stack_roots gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cartesian gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.7 8.5 0.45
length gen 3.8 3.8 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
control_flow gen 3.8 3.7 8.4 0.45
modules gen 3.9 3.8 8.7 0.45
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.5 5.5 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
files gen 0 2 8 0.000
gc_stack_roots gen 1 2 8 0.109
control_flow gen 2 1 10 0.200
loops gen 2 1 9 0.207
modules gen 2 2 8 0.219
fib_iter gen 2 2 9 0.222
containers gen 6 3 26 0.229
classes gen 3 2 13 0.240
scoped_resource gen 2 2 8 0.250
fib_recursive gen 2 1 7 0.279
escape gen 2 4 6 0.331
length gen 4 5 11 0.366
tuple_return_value gen 3 1 7 0.410
asdl_generated gen 4 0 9 0.449
parse gen 5 4 8 0.611
cartesian gen 6 7 7 0.851
cgi gen 5 6 5 0.999
varargs gen 25 23 25 1.006
pea_hello gen NA NA 8 NA

raw benchmark files