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 196 0.004
fib_iter gen 7 7 941 0.007
fib_recursive gen 10 10 891 0.011
loops gen 4 2 299 0.012
asdl_generated gen 5 10 386 0.013
parse gen 29 24 779 0.037
classes gen 1 3 26 0.041
scoped_resource gen 44 44 1,038 0.042
containers gen 7 6 116 0.060
files gen 5 5 73 0.075
gc_stack_roots gen 1 1 11 0.082
tuple_return_value gen 18 18 197 0.094
length gen 41 42 217 0.190
cartesian gen 84 78 337 0.251
escape gen 98 97 355 0.277
cgi gen 255 267 529 0.482
varargs gen 21 21 27 0.779
control_flow gen 209 160 112 1.860
pea_hello gen NA NA 9 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.3 12.3 0.36
cartesian gen 3.5 3.7 8.5 0.42
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.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
length gen 3.5 3.5 8.4 0.42
fib_iter gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
files gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.5 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
cgi gen 0 2 8 0.000
loops gen 0 1 7 0.000
fib_iter gen 1 1 9 0.106
gc_stack_roots gen 1 1 8 0.113
fib_recursive gen 1 1 6 0.164
modules gen 1 2 5 0.176
classes gen 2 0 12 0.176
containers gen 5 5 28 0.177
files gen 2 3 10 0.182
parse gen 2 3 10 0.197
control_flow gen 2 3 10 0.199
tuple_return_value gen 1 1 5 0.205
varargs gen 18 19 25 0.721
cartesian gen 7 7 9 0.773
length gen 4 3 5 0.787
asdl_generated gen 6 1 6 0.971
scoped_resource gen 5 2 5 1.001
escape gen 7 6 5 1.389
pea_hello gen NA NA 9 NA

raw benchmark files