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 972 0.008
fib_recursive gen 7 11 895 0.008
modules gen 2 2 189 0.009
asdl_generated gen 4 11 375 0.010
loops gen 4 3 300 0.014
parse gen 26 15 765 0.034
scoped_resource gen 37 37 1,030 0.036
tuple_return_value gen 15 18 189 0.081
containers gen 10 0 120 0.085
files gen 7 8 75 0.100
gc_stack_roots gen 2 2 12 0.146
classes gen 3 3 20 0.167
varargs gen 4 20 24 0.170
length gen 45 38 216 0.210
escape gen 101 103 353 0.285
cartesian gen 94 82 328 0.287
cgi gen 268 255 516 0.520
control_flow gen 212 163 120 1.773
pea_hello gen NA NA 14 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.5 3.5 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
files gen 3.7 3.5 8.5 0.43
loops gen 3.7 3.9 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
length gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
asdl_generated gen 3.7 3.7 8.1 0.45
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.9 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.8 8.3 0.48
containers gen 28.7 28.5 49.1 0.58
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 12 8 0.000
classes gen 0 0 20 0.000
control_flow gen 0 0 4 0.000
fib_iter gen 0 0 8 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 8 4 0.000
loops gen 0 0 4 0.000
modules gen 0 0 12 0.000
containers gen 5 14 24 0.213
tuple_return_value gen 4 0 12 0.318
fib_recursive gen 4 0 8 0.449
escape gen 4 0 8 0.502
parse gen 4 11 8 0.541
asdl_generated gen 7 0 12 0.601
cartesian gen 8 4 12 0.683
scoped_resource gen 12 8 16 0.768
varargs gen 61 45 56 1.094
pea_hello gen NA NA 5 NA

raw benchmark files