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
classes gen 0 3 28 0.000
loops gen 0 3 301 0.000
fib_iter gen 8 4 900 0.008
modules gen 2 2 187 0.010
fib_recursive gen 11 11 903 0.012
asdl_generated gen 7 11 384 0.019
parse gen 23 27 779 0.029
containers gen 4 9 124 0.031
scoped_resource gen 48 41 1,091 0.044
files gen 4 7 67 0.054
tuple_return_value gen 19 15 192 0.100
gc_stack_roots gen 2 0 16 0.111
length gen 45 37 212 0.212
cartesian gen 87 82 334 0.260
escape gen 96 99 359 0.267
cgi gen 250 249 529 0.472
varargs gen 23 24 19 1.202
control_flow gen 204 161 117 1.739
pea_hello gen NA NA 15 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
escape gen 3.4 3.5 8.5 0.40
parse gen 3.7 3.7 9.1 0.40
gc_stack_roots gen 3.4 3.5 8.4 0.41
asdl_generated gen 3.5 3.5 8.5 0.42
fib_recursive gen 3.5 3.8 8.5 0.42
modules gen 3.7 3.8 8.7 0.42
cgi gen 3.7 3.7 8.5 0.43
files gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
control_flow gen 3.8 3.9 8.5 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
fib_iter gen 3.9 3.7 8.5 0.46
loops gen 3.9 3.8 8.5 0.46
containers gen 28.5 28.5 49.1 0.58
varargs gen 5.5 5.5 8.4 0.66
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_recursive gen 0 0 4 0.000
gc_stack_roots gen 0 2 4 0.000
length gen 0 8 8 0.000
modules gen 0 0 12 0.000
scoped_resource gen 0 4 4 0.000
tuple_return_value gen 0 4 8 0.000
files gen 4 0 16 0.228
classes gen 3 0 12 0.271
loops gen 4 0 12 0.310
asdl_generated gen 4 0 8 0.445
containers gen 11 5 20 0.575
varargs gen 42 41 61 0.689
parse gen 8 0 8 0.940
control_flow gen 4 0 4 0.989
cartesian gen 4 4 4 0.992
cgi gen 4 4 4 1.013
escape gen 8 4 4 1.980
fib_iter gen 0 4 0 NA
pea_hello gen NA NA 4 NA

raw benchmark files