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 0 21 0.000
loops gen 0 3 317 0.000
fib_iter gen 4 8 904 0.004
modules gen 2 2 184 0.011
fib_recursive gen 11 11 888 0.012
asdl_generated gen 7 7 427 0.017
parse gen 27 27 776 0.034
scoped_resource gen 40 39 1,025 0.039
files gen 4 7 75 0.049
containers gen 8 4 123 0.064
tuple_return_value gen 19 11 196 0.098
classes gen 4 3 31 0.115
length gen 41 47 210 0.194
cartesian gen 79 81 341 0.231
escape gen 94 96 360 0.260
cgi gen 250 251 566 0.442
varargs gen 20 12 28 0.724
control_flow gen 205 162 119 1.717
pea_hello gen NA NA 8 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.5 12.3 0.36
gc_stack_roots gen 3.4 3.5 8.4 0.41
modules gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
fib_iter gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
tuple_return_value gen 3.9 3.8 8.4 0.47
containers gen 28.7 28.6 49.1 0.58
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 0 8 0.000
fib_recursive gen 0 0 16 0.000
modules gen 0 0 12 0.000
tuple_return_value gen 0 7 4 0.000
files gen 4 0 12 0.308
containers gen 8 11 24 0.333
asdl_generated gen 4 4 8 0.445
parse gen 4 0 8 0.477
cgi gen 4 4 8 0.495
length gen 4 0 8 0.514
scoped_resource gen 8 8 12 0.660
varargs gen 45 53 52 0.857
fib_iter gen 4 0 4 0.968
control_flow gen 4 0 4 0.991
escape gen 12 8 4 2.925
cartesian gen 12 4 4 2.950
gc_stack_roots gen 2 2 0 inf
loops gen 4 0 0 inf
pea_hello gen NA NA 12 NA

raw benchmark files