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 2 191 0.005
loops gen 2 2 309 0.006
fib_iter gen 7 6 904 0.007
fib_recursive gen 10 9 891 0.011
asdl_generated gen 8 8 382 0.020
parse gen 30 26 789 0.038
scoped_resource gen 46 39 1,044 0.044
containers gen 8 5 120 0.065
files gen 5 6 74 0.070
classes gen 2 1 29 0.072
tuple_return_value gen 16 17 191 0.084
gc_stack_roots gen 2 1 16 0.103
length gen 38 42 214 0.178
cartesian gen 83 79 339 0.246
escape gen 98 102 361 0.272
cgi gen 265 265 527 0.502
varargs gen 17 15 25 0.682
control_flow gen 208 162 116 1.798
pea_hello gen NA NA 10 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
cgi 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.5 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
control_flow gen 3.8 3.7 8.5 0.45
files gen 3.8 3.7 8.5 0.45
length gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 1 3 0.000
fib_recursive gen 1 2 11 0.088
classes gen 1 2 9 0.116
fib_iter gen 1 1 8 0.117
modules gen 1 0 7 0.124
parse gen 1 1 7 0.141
containers gen 4 6 22 0.176
files gen 2 1 10 0.209
loops gen 2 1 8 0.226
scoped_resource gen 2 7 8 0.249
asdl_generated gen 3 3 9 0.325
control_flow gen 2 1 6 0.334
tuple_return_value gen 3 1 8 0.376
cgi gen 5 3 8 0.624
varargs gen 22 24 28 0.788
length gen 6 3 6 0.979
escape gen 8 3 8 1.002
cartesian gen 9 7 7 1.277
pea_hello gen NA NA 7 NA

raw benchmark files