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 1 1 194 0.005
fib_iter gen 8 6 891 0.008
fib_recursive gen 10 10 893 0.011
loops gen 4 3 303 0.012
asdl_generated gen 9 10 388 0.023
parse gen 29 25 775 0.038
scoped_resource gen 45 38 1,065 0.042
containers gen 7 6 112 0.067
classes gen 2 2 29 0.072
files gen 6 5 75 0.086
tuple_return_value gen 17 17 192 0.089
gc_stack_roots gen 2 0 12 0.144
length gen 42 39 211 0.199
cartesian gen 84 81 332 0.254
escape gen 100 100 369 0.271
varargs gen 15 18 30 0.502
cgi gen 268 267 530 0.505
control_flow gen 207 159 113 1.824
pea_hello gen NA NA 11 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.6 4.5 12.3 0.37
fib_iter gen 3.5 3.9 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
cartesian gen 3.7 3.7 8.5 0.43
files gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
escape gen 3.7 3.7 8.3 0.44
fib_recursive gen 3.8 3.9 8.5 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
tuple_return_value gen 3.9 3.7 8.4 0.47
containers gen 28.6 28.9 49.1 0.58
varargs gen 5.6 5.4 8.5 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_iter gen 0 2 9 0.000
gc_stack_roots gen 0 2 7 0.000
loops gen 0 0 5 0.000
parse gen 1 2 9 0.112
files gen 1 2 8 0.115
classes gen 1 1 9 0.116
fib_recursive gen 1 1 8 0.123
modules gen 1 1 6 0.146
containers gen 4 5 29 0.147
cgi gen 2 1 10 0.201
asdl_generated gen 2 1 9 0.216
control_flow gen 2 3 8 0.249
scoped_resource gen 2 8 8 0.251
tuple_return_value gen 2 1 8 0.252
length gen 3 6 7 0.429
cartesian gen 7 6 9 0.773
escape gen 5 7 6 0.831
varargs gen 24 21 23 1.048
pea_hello gen NA NA 7 NA

raw benchmark files