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
loops gen 0 3 310 0.000
fib_iter gen 8 8 895 0.008
asdl_generated gen 4 7 399 0.009
modules gen 2 2 188 0.009
fib_recursive gen 11 11 962 0.011
parse gen 26 28 776 0.034
scoped_resource gen 44 42 1,024 0.043
containers gen 8 10 116 0.066
files gen 7 4 78 0.093
classes gen 3 0 34 0.093
tuple_return_value gen 19 18 196 0.098
gc_stack_roots gen 2 0 16 0.108
length gen 44 42 210 0.210
cartesian gen 83 84 366 0.227
escape gen 104 98 348 0.299
varargs gen 15 12 32 0.486
cgi gen 260 268 529 0.492
control_flow gen 205 158 113 1.811
pea_hello gen NA NA 7 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.3 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
cgi gen 3.7 3.7 8.4 0.44
files gen 3.7 3.9 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
containers gen 28.4 28.4 49.1 0.58
varargs gen 5.5 5.4 8.4 0.66
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 3 4 0.000
escape gen 0 4 12 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 8 0.000
files gen 0 4 4 0.000
gc_stack_roots gen 0 2 4 0.000
length gen 0 4 4 0.000
modules gen 0 0 12 0.000
tuple_return_value gen 0 0 4 0.000
parse gen 4 0 16 0.236
scoped_resource gen 4 4 16 0.250
containers gen 8 5 24 0.317
control_flow gen 4 4 8 0.488
loops gen 4 0 4 0.907
asdl_generated gen 7 4 8 0.909
cgi gen 8 0 8 0.999
varargs gen 50 53 48 1.053
cartesian gen 8 8 0 inf
pea_hello gen NA NA 11 NA

raw benchmark files