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 194 0.000
fib_iter gen 6 6 893 0.006
fib_recursive gen 10 10 891 0.011
loops gen 4 1 300 0.012
asdl_generated gen 10 10 386 0.025
parse gen 29 24 763 0.037
scoped_resource gen 45 41 1,052 0.043
containers gen 7 5 115 0.064
gc_stack_roots gen 1 2 11 0.078
classes gen 2 1 26 0.078
files gen 6 7 75 0.083
tuple_return_value gen 18 16 201 0.090
length gen 41 41 212 0.194
cartesian gen 86 77 333 0.257
escape gen 98 101 359 0.273
cgi gen 270 277 526 0.513
varargs gen 17 15 24 0.705
control_flow gen 209 157 114 1.839
pea_hello gen NA NA 12 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.5 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
cgi gen 3.5 3.7 8.5 0.42
cartesian gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.4 0.44
files gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
modules gen 3.8 3.7 8.7 0.44
loops 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.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
containers gen 28.9 28.6 48.9 0.59
varargs gen 5.5 5.5 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
loops gen 0 2 10 0.000
classes gen 1 2 11 0.093
gc_stack_roots gen 1 0 8 0.108
files gen 1 0 9 0.115
fib_recursive gen 1 1 8 0.123
control_flow gen 1 3 8 0.125
asdl_generated gen 1 1 8 0.133
tuple_return_value gen 1 2 7 0.144
containers gen 4 5 27 0.155
parse gen 2 3 10 0.197
scoped_resource gen 2 4 9 0.224
cgi gen 2 2 7 0.285
fib_iter gen 2 2 6 0.314
length gen 3 4 7 0.429
modules gen 2 1 4 0.442
cartesian gen 6 9 8 0.755
varargs gen 22 24 28 0.782
escape gen 7 3 6 1.168
pea_hello gen NA NA 6 NA

raw benchmark files