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 0 192 0.005
fib_iter gen 7 7 937 0.007
fib_recursive gen 10 10 896 0.011
loops gen 4 1 297 0.012
asdl_generated gen 10 8 397 0.026
parse gen 27 24 790 0.034
scoped_resource gen 46 39 1,045 0.044
classes gen 2 1 28 0.074
containers gen 9 7 112 0.079
files gen 6 6 77 0.083
tuple_return_value gen 19 16 192 0.101
gc_stack_roots gen 2 1 10 0.166
length gen 36 42 211 0.172
cartesian gen 81 78 342 0.236
escape gen 100 96 355 0.280
cgi gen 266 265 527 0.505
varargs gen 13 19 22 0.594
control_flow gen 207 162 112 1.846
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
gc_stack_roots gen 3.4 3.4 8.5 0.40
parse gen 3.7 3.9 9.1 0.40
cartesian gen 3.5 3.5 8.5 0.42
fib_iter gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.9 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
files gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 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
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 1 9 0.000
loops gen 0 2 6 0.000
tuple_return_value gen 0 2 7 0.000
fib_iter gen 1 1 11 0.086
containers gen 3 4 31 0.096
classes gen 1 2 10 0.103
fib_recursive gen 1 1 8 0.122
files gen 1 2 7 0.130
asdl_generated gen 1 3 7 0.146
modules gen 1 2 6 0.147
parse gen 3 3 14 0.216
scoped_resource gen 2 6 8 0.249
control_flow gen 2 1 8 0.251
escape gen 6 7 7 0.853
varargs gen 27 21 31 0.876
length gen 8 3 8 1.006
cartesian gen 11 10 7 1.563
cgi gen 4 4 2 2.000
pea_hello gen NA NA 8 NA

raw benchmark files