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 4 8 893 0.004
modules gen 2 2 188 0.010
fib_recursive gen 11 11 893 0.012
loops gen 4 0 297 0.012
asdl_generated gen 11 11 399 0.029
parse gen 23 27 765 0.030
containers gen 4 10 117 0.036
scoped_resource gen 43 46 1,027 0.042
files gen 4 4 84 0.044
tuple_return_value gen 14 18 191 0.075
gc_stack_roots gen 2 2 16 0.112
classes gen 3 0 26 0.126
length gen 45 45 214 0.209
cartesian gen 79 82 335 0.236
escape gen 101 104 370 0.272
cgi gen 266 263 527 0.504
varargs gen 29 20 19 1.511
control_flow gen 209 161 113 1.846
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.5 12.3 0.36
gc_stack_roots gen 3.4 3.5 8.5 0.40
modules gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.3 0.44
fib_iter gen 3.7 3.8 8.3 0.44
control_flow gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
asdl_generated gen 3.8 3.5 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
files gen 3.9 3.7 8.5 0.46
containers gen 28.7 28.4 49.1 0.58
varargs gen 5.6 5.5 8.5 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
asdl_generated gen 0 0 4 0.000
classes gen 0 3 13 0.000
control_flow gen 0 4 8 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 0 4 0.000
length gen 0 0 4 0.000
loops gen 0 3 12 0.000
modules gen 0 0 8 0.000
fib_iter gen 4 0 16 0.240
parse gen 8 0 20 0.386
escape gen 4 0 8 0.506
containers gen 17 5 28 0.599
tuple_return_value gen 5 0 8 0.601
varargs gen 37 47 61 0.607
scoped_resource gen 4 0 4 0.984
cgi gen 4 4 4 0.993
cartesian gen 12 4 8 1.486
files gen 4 4 0 inf
pea_hello gen NA NA 11 NA

raw benchmark files