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_recursive gen 7 11 891 0.008
fib_iter gen 8 8 898 0.009
modules gen 2 2 202 0.009
loops gen 4 3 295 0.012
asdl_generated gen 11 11 380 0.029
parse gen 27 23 771 0.035
scoped_resource gen 44 46 1,022 0.043
containers gen 10 4 113 0.090
files gen 7 4 79 0.092
classes gen 3 3 34 0.093
tuple_return_value gen 19 15 190 0.101
gc_stack_roots gen 2 2 12 0.150
length gen 45 33 211 0.214
cartesian gen 84 70 330 0.253
escape gen 94 89 362 0.260
cgi gen 271 253 519 0.522
varargs gen 15 8 20 0.774
control_flow gen 206 163 117 1.763
pea_hello gen NA NA 5 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
fib_iter gen 3.4 3.7 8.5 0.40
gc_stack_roots gen 3.4 3.5 8.5 0.40
asdl_generated gen 3.5 3.7 8.5 0.42
length gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
escape gen 3.7 3.5 8.5 0.43
loops gen 3.7 3.9 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
cartesian gen 3.7 3.7 8.3 0.44
files gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.9 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.7 28.5 49.1 0.58
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
asdl_generated gen 0 0 8 0.000
classes gen 0 0 4 0.000
fib_iter gen 0 0 8 0.000
files gen 0 4 4 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 12 12 0.000
loops gen 0 0 12 0.000
modules gen 0 0 4 0.000
tuple_return_value gen 0 4 8 0.000
containers gen 5 11 32 0.157
fib_recursive gen 4 0 12 0.297
parse gen 4 4 12 0.320
cgi gen 4 0 12 0.333
scoped_resource gen 4 0 12 0.336
cartesian gen 8 16 12 0.659
escape gen 12 12 16 0.738
varargs gen 50 57 60 0.838
control_flow gen 4 0 4 0.983
pea_hello gen NA NA 14 NA

raw benchmark files