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 0 187 0.000
fib_iter gen 8 6 896 0.008
fib_recursive gen 9 9 887 0.010
loops gen 4 2 300 0.012
asdl_generated gen 7 9 394 0.017
classes gen 1 2 32 0.033
parse gen 27 25 772 0.035
scoped_resource gen 45 43 1,036 0.043
containers gen 8 6 116 0.067
tuple_return_value gen 15 17 190 0.080
files gen 6 5 74 0.083
gc_stack_roots gen 2 2 10 0.170
length gen 39 43 214 0.183
cartesian gen 84 78 338 0.248
escape gen 101 98 356 0.283
cgi gen 268 264 539 0.498
varargs gen 17 15 26 0.649
control_flow gen 206 159 117 1.756
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
gc_stack_roots gen 3.4 3.7 8.4 0.41
escape gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
length gen 3.7 3.9 8.4 0.44
tuple_return_value gen 3.7 3.9 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
modules gen 3.8 3.8 8.7 0.44
cartesian gen 3.7 3.5 8.3 0.44
fib_iter gen 3.7 3.7 8.3 0.44
files gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.8 8.3 0.46
containers gen 28.9 28.9 49.2 0.59
varargs gen 5.2 5.5 8.5 0.62
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 9 0.000
gc_stack_roots gen 0 0 9 0.000
loops gen 0 1 8 0.000
files gen 1 2 9 0.114
containers gen 4 4 27 0.144
modules gen 2 2 9 0.195
fib_recursive gen 2 2 10 0.195
scoped_resource gen 2 2 8 0.250
parse gen 3 2 10 0.300
classes gen 2 1 6 0.350
tuple_return_value gen 4 1 11 0.367
control_flow gen 3 3 7 0.425
cgi gen 2 5 4 0.499
escape gen 5 6 10 0.504
asdl_generated gen 4 2 5 0.786
varargs gen 22 24 26 0.840
length gen 6 2 7 0.859
cartesian gen 8 8 4 1.995
pea_hello gen NA NA 5 NA

raw benchmark files