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
fib_iter gen 8 8 896 0.008
modules gen 2 2 189 0.010
fib_recursive gen 11 7 881 0.012
loops gen 4 3 303 0.012
asdl_generated gen 5 11 380 0.014
parse gen 26 27 765 0.034
scoped_resource gen 48 42 1,021 0.047
containers gen 10 9 103 0.099
files gen 7 7 72 0.102
tuple_return_value gen 19 15 180 0.108
classes gen 3 3 30 0.108
gc_stack_roots gen 2 2 12 0.147
length gen 41 38 210 0.195
cartesian gen 87 65 340 0.256
escape gen 105 100 357 0.295
cgi gen 249 263 526 0.473
varargs gen 23 29 27 0.858
control_flow gen 207 164 109 1.892
pea_hello gen NA NA 8 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
cgi gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
cartesian gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
escape gen 3.7 3.5 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
files gen 3.7 3.7 8.4 0.44
asdl_generated gen 3.7 3.7 8.3 0.44
fib_iter gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.9 8.4 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
containers gen 28.8 28.4 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 0 9 0.000
control_flow gen 0 0 12 0.000
escape gen 0 4 8 0.000
fib_iter gen 0 0 4 0.000
fib_recursive gen 0 4 12 0.000
files gen 0 0 12 0.000
gc_stack_roots gen 0 0 8 0.000
loops gen 0 0 8 0.000
modules gen 0 0 12 0.000
scoped_resource gen 0 4 16 0.000
tuple_return_value gen 0 4 20 0.000
containers gen 5 5 40 0.129
parse gen 4 0 20 0.189
asdl_generated gen 5 0 12 0.447
cartesian gen 4 19 8 0.494
cgi gen 4 4 8 0.500
length gen 4 8 8 0.507
varargs gen 43 37 54 0.786
pea_hello gen NA NA 11 NA

raw benchmark files