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 0 191 0.005
fib_iter gen 8 7 942 0.008
loops gen 3 1 299 0.009
fib_recursive gen 11 10 900 0.012
asdl_generated gen 9 10 393 0.022
classes gen 1 1 25 0.031
parse gen 27 24 775 0.035
scoped_resource gen 44 42 1,039 0.042
containers gen 8 4 124 0.064
gc_stack_roots gen 1 2 11 0.078
files gen 6 5 75 0.084
tuple_return_value gen 17 14 193 0.089
length gen 43 41 215 0.201
cartesian gen 83 79 342 0.243
escape gen 99 96 361 0.274
cgi gen 264 263 522 0.505
varargs gen 14 15 19 0.719
control_flow gen 206 161 116 1.774
pea_hello gen NA NA 14 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.6 12.5 0.36
fib_iter gen 3.5 3.8 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.8 8.9 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.7 8.3 0.44
length gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.9 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
files gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.4 5.5 8.4 0.64
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 6 0.000
fib_recursive gen 0 1 7 0.000
loops gen 1 2 8 0.115
files gen 1 3 9 0.116
gc_stack_roots gen 1 0 7 0.123
modules gen 1 2 7 0.123
containers gen 4 6 22 0.179
classes gen 2 2 13 0.182
tuple_return_value gen 2 5 9 0.223
asdl_generated gen 2 1 6 0.323
control_flow gen 2 1 6 0.335
parse gen 3 3 9 0.335
length gen 2 4 4 0.500
scoped_resource gen 4 4 6 0.665
varargs gen 26 24 33 0.769
cartesian gen 9 8 8 1.125
cgi gen 6 6 5 1.199
escape gen 8 7 4 1.998
pea_hello gen NA NA 4 NA

raw benchmark files