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
fib_iter gen 8 8 889 0.009
modules gen 2 2 179 0.011
fib_recursive gen 11 11 877 0.012
loops gen 4 3 286 0.015
asdl_generated gen 7 12 392 0.019
parse gen 26 23 777 0.033
containers gen 4 4 104 0.039
scoped_resource gen 45 34 1,029 0.044
files gen 4 8 76 0.051
tuple_return_value gen 17 18 191 0.090
length gen 36 40 195 0.187
classes gen 3 4 16 0.204
cartesian gen 89 88 327 0.271
escape gen 97 100 346 0.280
cgi gen 271 264 552 0.491
varargs gen 29 16 16 1.800
control_flow gen 211 162 106 1.980
gc_stack_roots gen 2 2 0 inf

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 10.7 0.43
parse gen 3.8 3.8 7.6 0.50
gc_stack_roots gen 3.5 3.4 6.9 0.51
escape gen 3.7 3.5 7.1 0.52
scoped_resource gen 3.7 3.8 7.1 0.52
tuple_return_value gen 3.7 3.7 7.1 0.52
loops gen 3.8 3.8 7.2 0.53
asdl_generated gen 3.7 3.5 6.9 0.53
cartesian gen 3.7 3.5 6.9 0.53
cgi gen 3.7 3.5 6.9 0.53
control_flow gen 3.7 3.8 6.9 0.53
length gen 3.8 3.7 7.1 0.54
fib_iter gen 3.8 3.8 6.9 0.55
fib_recursive gen 3.8 3.8 6.9 0.55
files gen 3.8 3.9 6.9 0.55
modules gen 3.8 3.8 6.9 0.55
containers gen 28.7 28.5 47.6 0.60
varargs gen 5.4 5.4 7.1 0.76

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 4 12 0.000
classes gen 0 0 16 0.000
control_flow gen 0 0 8 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 12 0.000
gc_stack_roots gen 0 0 12 0.000
loops gen 0 0 12 0.000
modules gen 0 0 4 0.000
containers gen 12 11 40 0.303
cartesian gen 4 0 8 0.504
scoped_resource gen 4 11 8 0.508
varargs gen 37 49 56 0.661
length gen 8 4 12 0.678
tuple_return_value gen 3 0 4 0.860
parse gen 4 4 4 0.911
asdl_generated gen 4 0 4 0.918
escape gen 8 4 8 1.002
files gen 4 0 0 inf

raw benchmark files