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 191 0.005
fib_iter gen 7 8 898 0.008
fib_recursive gen 10 10 893 0.011
loops gen 4 2 304 0.013
asdl_generated gen 8 8 406 0.019
parse gen 29 23 779 0.038
scoped_resource gen 45 44 1,030 0.044
containers gen 8 6 116 0.069
files gen 6 7 75 0.085
classes gen 2 2 28 0.086
tuple_return_value gen 19 17 195 0.099
gc_stack_roots gen 2 0 12 0.139
length gen 42 40 211 0.200
cartesian gen 85 84 351 0.242
escape gen 100 95 359 0.279
cgi gen 270 264 529 0.509
varargs gen 20 13 31 0.647
control_flow gen 207 159 117 1.777
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.6 4.5 12.3 0.37
gc_stack_roots gen 3.4 3.4 8.4 0.41
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.7 9.0 0.42
loops gen 3.7 3.8 8.7 0.42
cgi gen 3.7 3.5 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
files gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 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
modules gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 2 6 0.000
loops gen 0 2 7 0.000
tuple_return_value gen 0 1 6 0.000
parse gen 1 4 10 0.101
classes gen 1 1 12 0.101
files gen 1 1 9 0.118
fib_recursive gen 1 1 8 0.124
containers gen 4 5 28 0.142
cgi gen 1 5 7 0.143
fib_iter gen 1 0 7 0.143
modules gen 1 1 5 0.198
control_flow gen 2 3 7 0.287
length gen 3 6 8 0.377
scoped_resource gen 5 2 13 0.378
asdl_generated gen 3 3 7 0.417
cartesian gen 6 2 8 0.750
escape gen 7 8 8 0.873
varargs gen 20 26 22 0.911
pea_hello gen NA NA 6 NA

raw benchmark files