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
gc_stack_roots gen 0 2 13 0.000
modules gen 1 1 185 0.005
fib_iter gen 8 8 893 0.009
loops gen 3 3 306 0.009
fib_recursive gen 11 10 891 0.012
asdl_generated gen 10 10 388 0.025
parse gen 26 23 770 0.034
scoped_resource gen 42 41 1,037 0.041
containers gen 6 7 122 0.050
classes gen 2 2 23 0.068
files gen 8 5 80 0.094
tuple_return_value gen 19 17 191 0.100
length gen 38 41 209 0.182
cartesian gen 83 81 359 0.232
escape gen 98 97 362 0.271
cgi gen 266 264 526 0.506
varargs gen 18 15 23 0.786
control_flow gen 204 163 116 1.766
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.3 4.5 12.3 0.35
parse gen 3.7 3.8 9.1 0.40
cartesian gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.9 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.5 8.7 0.45
control_flow gen 3.9 3.8 8.4 0.47
files gen 3.9 3.7 8.4 0.47
length gen 3.9 3.7 8.4 0.47
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
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 0 6 0.000
fib_recursive gen 0 1 6 0.000
files gen 0 3 5 0.000
tuple_return_value gen 0 1 10 0.000
modules gen 1 1 12 0.073
classes gen 2 1 15 0.104
loops gen 1 0 7 0.131
asdl_generated gen 1 1 8 0.132
containers gen 6 3 22 0.276
gc_stack_roots gen 2 0 7 0.280
parse gen 4 4 10 0.406
control_flow gen 3 0 6 0.502
length gen 6 4 10 0.602
varargs gen 21 24 30 0.703
scoped_resource gen 5 5 7 0.716
cgi gen 5 5 6 0.832
cartesian gen 9 7 8 1.127
escape gen 8 7 3 2.659
pea_hello gen NA NA 9 NA

raw benchmark files