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 2 193 0.005
fib_iter gen 6 6 941 0.006
fib_recursive gen 10 11 911 0.011
loops gen 4 1 302 0.012
asdl_generated gen 9 9 393 0.023
parse gen 28 22 771 0.036
classes gen 1 2 26 0.039
scoped_resource gen 46 45 1,031 0.045
containers gen 7 3 114 0.065
files gen 5 5 80 0.065
gc_stack_roots gen 1 0 10 0.085
tuple_return_value gen 18 17 194 0.095
length gen 42 37 207 0.201
cartesian gen 80 76 335 0.238
escape gen 102 96 354 0.288
cgi gen 267 264 524 0.510
varargs gen 17 17 21 0.810
control_flow gen 206 160 116 1.771
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.3 4.5 12.2 0.35
parse gen 3.7 3.7 9.1 0.40
gc_stack_roots gen 3.4 3.5 8.4 0.41
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
files gen 3.7 3.9 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.8 8.4 0.44
length gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
fib_iter gen 3.9 3.8 8.5 0.46
loops gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.6 49.1 0.59
varargs gen 5.6 5.6 8.5 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
loops gen 0 2 9 0.000
gc_stack_roots gen 1 2 8 0.107
fib_recursive gen 1 0 8 0.123
control_flow gen 1 2 7 0.142
modules gen 1 0 6 0.146
tuple_return_value gen 1 1 6 0.170
classes gen 2 1 12 0.170
containers gen 5 8 30 0.176
fib_iter gen 2 2 8 0.238
asdl_generated gen 2 2 8 0.247
parse gen 3 5 12 0.248
cgi gen 2 5 8 0.250
scoped_resource gen 2 1 7 0.287
files gen 2 2 7 0.295
escape gen 3 7 7 0.429
length gen 4 8 9 0.440
varargs gen 22 22 32 0.688
cartesian gen 12 10 7 1.706
pea_hello gen NA NA 8 NA

raw benchmark files