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 0 191 0.000
fib_iter gen 6 6 938 0.006
fib_recursive gen 11 7 893 0.012
loops gen 5 3 298 0.015
asdl_generated gen 10 13 389 0.025
parse gen 24 25 776 0.031
scoped_resource gen 49 42 1,093 0.045
containers gen 8 4 130 0.060
files gen 8 4 77 0.105
tuple_return_value gen 21 19 191 0.109
gc_stack_roots gen 2 0 16 0.110
classes gen 3 3 27 0.129
length gen 38 47 210 0.183
cartesian gen 84 88 331 0.255
escape gen 107 99 358 0.299
cgi gen 269 277 521 0.516
varargs gen 31 20 32 0.958
control_flow gen 212 162 105 2.024
pea_hello gen NA NA 11 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
parse gen 3.8 3.8 9.1 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
files gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.5 0.45
cgi gen 3.7 3.5 8.1 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.7 8.7 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.6 5.4 8.4 0.67
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 4 8 0.000
classes gen 0 0 12 0.000
control_flow gen 0 0 15 0.000
fib_recursive gen 0 4 12 0.000
files gen 0 4 8 0.000
gc_stack_roots gen 0 2 4 0.000
loops gen 0 0 8 0.000
scoped_resource gen 0 4 12 0.000
tuple_return_value gen 0 0 8 0.000
asdl_generated gen 3 0 12 0.266
escape gen 4 8 12 0.328
modules gen 2 2 4 0.458
containers gen 8 11 16 0.479
varargs gen 38 48 48 0.798
length gen 8 0 8 0.953
parse gen 8 4 8 0.997
cartesian gen 8 0 8 1.008
fib_iter gen 3 3 0 inf
pea_hello gen NA NA 7 NA

raw benchmark files