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
asdl_generated gen 0 11 383 0.000
containers gen 0 5 115 0.000
modules gen 0 2 199 0.000
fib_iter gen 4 8 902 0.004
loops gen 4 3 307 0.012
fib_recursive gen 11 7 908 0.012
parse gen 23 27 784 0.029
scoped_resource gen 44 42 1,032 0.042
files gen 4 7 75 0.049
tuple_return_value gen 14 15 187 0.077
classes gen 3 0 32 0.107
gc_stack_roots gen 2 2 10 0.170
length gen 40 42 214 0.189
cartesian gen 88 83 335 0.262
escape gen 101 87 360 0.282
cgi gen 257 268 530 0.485
varargs gen 19 12 28 0.691
control_flow gen 210 162 115 1.831
pea_hello gen NA NA 13 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.3 4.5 12.3 0.35
asdl_generated gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
length gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.9 8.4 0.45
fib_iter gen 3.8 3.7 8.4 0.45
files gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
containers gen 28.4 28.4 49.2 0.58
varargs gen 5.6 5.5 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
classes gen 0 3 8 0.000
control_flow gen 0 0 8 0.000
fib_recursive gen 0 4 12 0.000
gc_stack_roots gen 0 0 10 0.000
loops gen 0 0 4 0.000
cartesian gen 4 4 12 0.329
tuple_return_value gen 5 4 12 0.396
files gen 4 0 8 0.442
modules gen 2 0 4 0.450
containers gen 15 10 32 0.483
scoped_resource gen 4 4 8 0.496
parse gen 8 0 12 0.639
varargs gen 47 52 52 0.893
asdl_generated gen 11 0 12 0.908
fib_iter gen 4 0 4 0.947
length gen 4 4 4 1.000
escape gen 4 16 4 1.014
cgi gen 12 0 8 1.488
pea_hello gen NA NA 4 NA

raw benchmark files