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
modules gen 0 1 190 0.000
fib_iter gen 7 6 901 0.008
loops gen 3 2 301 0.009
fib_recursive gen 11 11 888 0.012
asdl_generated gen 9 8 393 0.022
parse gen 25 24 779 0.032
scoped_resource gen 45 39 1,051 0.043
containers gen 7 4 118 0.058
gc_stack_roots gen 1 2 11 0.077
files gen 6 6 72 0.086
tuple_return_value gen 17 17 192 0.090
classes gen 3 1 27 0.114
length gen 41 42 215 0.192
cartesian gen 86 82 354 0.242
escape gen 102 100 355 0.286
varargs gen 12 17 25 0.490
cgi gen 270 268 516 0.522
control_flow gen 207 164 116 1.783
pea_hello gen NA NA 9 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.2 0.36
gc_stack_roots gen 3.5 3.4 8.5 0.42
modules gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
files gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.7 8.4 0.45
scoped_resource gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.4 0.47
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.5 5.5 8.4 0.66
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 2 11 0.000
control_flow gen 0 1 5 0.000
fib_iter gen 0 2 5 0.000
fib_recursive gen 0 0 5 0.000
files gen 1 1 10 0.103
gc_stack_roots gen 1 0 8 0.107
loops gen 1 1 7 0.135
containers gen 5 6 36 0.137
cgi gen 2 0 9 0.223
modules gen 2 1 7 0.249
scoped_resource gen 2 6 8 0.251
tuple_return_value gen 2 1 6 0.320
asdl_generated gen 2 3 6 0.326
length gen 3 3 7 0.431
escape gen 5 3 9 0.559
parse gen 6 3 8 0.740
cartesian gen 6 5 8 0.747
varargs gen 29 23 28 1.057
pea_hello gen NA NA 9 NA

raw benchmark files