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 2 188 0.000
fib_iter gen 7 5 897 0.007
fib_recursive gen 10 10 894 0.011
loops gen 4 2 303 0.012
asdl_generated gen 10 7 399 0.024
parse gen 26 25 801 0.033
scoped_resource gen 44 46 1,041 0.042
containers gen 7 5 123 0.057
files gen 4 5 76 0.057
classes gen 2 1 32 0.067
tuple_return_value gen 18 18 199 0.091
gc_stack_roots gen 2 1 14 0.122
length gen 37 41 209 0.179
cartesian gen 86 80 339 0.253
escape gen 103 98 366 0.281
cgi gen 268 258 529 0.507
varargs gen 15 16 26 0.564
control_flow gen 210 161 113 1.847
pea_hello gen NA NA 9 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.5 8.5 0.40
parse gen 3.8 3.7 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.5 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
control_flow gen 3.8 3.8 8.5 0.45
files gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
cartesian gen 3.8 3.5 8.4 0.45
length gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
fib_iter gen 3.9 3.5 8.5 0.46
containers gen 28.8 28.8 48.9 0.59
varargs gen 5.6 5.5 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
control_flow gen 0 2 8 0.000
gc_stack_roots gen 0 1 5 0.000
loops gen 0 2 5 0.000
asdl_generated gen 1 4 11 0.097
fib_recursive gen 1 1 8 0.123
classes gen 1 2 6 0.177
fib_iter gen 1 3 5 0.189
modules gen 2 0 9 0.198
cgi gen 2 5 10 0.200
tuple_return_value gen 1 0 5 0.201
containers gen 5 6 22 0.227
parse gen 4 2 11 0.366
files gen 3 3 8 0.409
scoped_resource gen 4 0 7 0.572
varargs gen 25 24 27 0.906
cartesian gen 7 6 7 0.997
escape gen 4 6 4 0.999
length gen 8 5 6 1.347
pea_hello gen NA NA 9 NA

raw benchmark files