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 10 0.000
modules gen 1 0 192 0.005
loops gen 2 2 302 0.006
fib_iter gen 7 8 947 0.007
fib_recursive gen 10 11 916 0.011
asdl_generated gen 11 7 387 0.028
parse gen 28 25 777 0.037
scoped_resource gen 43 45 1,059 0.041
files gen 5 6 77 0.059
classes gen 2 1 28 0.074
containers gen 9 6 117 0.074
tuple_return_value gen 18 17 190 0.097
length gen 41 40 208 0.198
cartesian gen 86 78 336 0.255
escape gen 101 100 360 0.281
cgi gen 272 267 533 0.511
varargs gen 22 15 27 0.814
control_flow gen 206 158 115 1.799
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.3 4.5 12.2 0.35
gc_stack_roots gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
escape gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
cgi gen 3.7 3.7 8.3 0.44
fib_iter gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.3 0.46
fib_recursive gen 3.9 3.8 8.3 0.48
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 4 6 0.000
classes gen 1 2 11 0.094
tuple_return_value gen 1 1 10 0.097
containers gen 3 5 28 0.117
modules gen 1 2 5 0.175
gc_stack_roots gen 2 0 9 0.194
fib_recursive gen 1 0 5 0.197
parse gen 2 2 10 0.203
fib_iter gen 1 0 4 0.250
length gen 3 5 10 0.301
loops gen 2 1 6 0.303
files gen 3 2 8 0.339
cgi gen 3 2 8 0.374
control_flow gen 3 3 7 0.430
varargs gen 17 24 26 0.653
escape gen 4 5 6 0.667
scoped_resource gen 5 1 7 0.705
cartesian gen 6 8 7 0.852
pea_hello gen NA NA 5 NA

raw benchmark files