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
fib_iter gen 4 8 890 0.004
modules gen 2 2 187 0.010
fib_recursive gen 11 11 891 0.012
loops gen 4 3 304 0.012
asdl_generated gen 11 11 382 0.028
parse gen 26 19 784 0.033
containers gen 5 5 124 0.042
scoped_resource gen 43 38 1,031 0.042
tuple_return_value gen 14 15 188 0.077
files gen 7 7 75 0.096
classes gen 3 0 23 0.138
gc_stack_roots gen 2 0 12 0.145
length gen 32 38 213 0.151
cartesian gen 87 87 334 0.259
escape gen 97 87 365 0.267
cgi gen 264 267 513 0.515
varargs gen 12 20 16 0.721
control_flow gen 205 160 121 1.689
pea_hello gen NA NA 15 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.2 0.36
cartesian gen 3.4 3.7 8.4 0.41
gc_stack_roots gen 3.4 3.5 8.4 0.41
asdl_generated gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
files gen 3.7 3.9 8.3 0.44
fib_iter gen 3.8 3.5 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
scoped_resource 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.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
loops gen 3.9 3.9 8.5 0.46
containers gen 28.6 28.6 49.1 0.58
varargs gen 5.4 5.4 8.4 0.64
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 4 0.000
classes gen 0 4 15 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 8 0.000
loops gen 0 0 4 0.000
modules gen 0 0 8 0.000
fib_iter gen 4 0 16 0.238
cgi gen 4 0 16 0.251
parse gen 4 8 16 0.270
tuple_return_value gen 5 4 12 0.402
scoped_resource gen 4 8 8 0.494
containers gen 10 10 20 0.518
varargs gen 54 45 64 0.842
cartesian gen 4 0 4 0.978
control_flow gen 4 0 4 0.994
escape gen 8 16 4 1.942
length gen 12 8 4 2.996
fib_recursive gen 0 0 0 NA
pea_hello gen NA NA 4 NA

raw benchmark files