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 3 35 0.000
files gen 0 7 75 0.000
modules gen 0 2 191 0.000
fib_iter gen 8 4 932 0.008
fib_recursive gen 11 11 889 0.012
loops gen 4 3 294 0.012
asdl_generated gen 5 7 384 0.014
parse gen 30 23 771 0.039
scoped_resource gen 48 33 1,030 0.047
containers gen 8 0 119 0.065
tuple_return_value gen 19 19 197 0.098
gc_stack_roots gen 2 0 12 0.144
length gen 34 41 228 0.148
cartesian gen 87 79 333 0.262
escape gen 102 103 356 0.286
cgi gen 265 267 528 0.503
varargs gen 23 33 32 0.715
control_flow gen 201 158 113 1.783
pea_hello gen NA NA 15 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.3 12.3 0.35
parse gen 3.8 3.8 9.1 0.42
cgi gen 3.5 3.7 8.4 0.42
fib_recursive gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
fib_iter gen 3.7 3.7 8.4 0.44
loops gen 3.7 3.9 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.5 28.6 48.8 0.58
varargs gen 5.6 5.5 8.4 0.67
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 4 16 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 2 8 0.000
loops gen 0 0 12 0.000
parse gen 0 4 16 0.000
scoped_resource gen 0 12 8 0.000
tuple_return_value gen 0 0 4 0.000
modules gen 2 0 8 0.233
containers gen 8 14 24 0.325
escape gen 4 0 8 0.489
control_flow gen 4 4 8 0.489
cartesian gen 4 8 8 0.501
asdl_generated gen 5 4 8 0.667
classes gen 3 0 4 0.833
varargs gen 42 33 49 0.874
files gen 7 0 8 0.917
cgi gen 4 0 4 1.006
length gen 11 4 8 1.403
pea_hello gen NA NA 4 NA

raw benchmark files