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 6 5 900 0.007
modules gen 2 2 198 0.009
fib_recursive gen 11 10 903 0.012
loops gen 4 3 300 0.012
asdl_generated gen 11 10 402 0.026
parse gen 26 25 794 0.033
classes gen 1 1 25 0.041
scoped_resource gen 46 42 1,035 0.045
files gen 5 6 72 0.072
containers gen 10 5 123 0.085
tuple_return_value gen 18 17 188 0.097
length gen 42 41 211 0.198
gc_stack_roots gen 2 1 7 0.248
cartesian gen 84 80 329 0.254
escape gen 95 102 365 0.260
cgi gen 268 264 519 0.516
varargs gen 19 21 34 0.559
control_flow gen 207 163 117 1.768
pea_hello gen NA NA 14 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
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
files gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.8 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
loops gen 3.8 3.8 8.7 0.44
modules gen 3.8 3.8 8.7 0.44
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.5 8.4 0.45
length gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.9 28.8 48.9 0.59
varargs gen 5.5 5.6 8.4 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
asdl_generated gen 0 1 8 0.000
fib_recursive gen 0 1 5 0.000
gc_stack_roots gen 0 1 12 0.000
loops gen 0 0 7 0.000
modules gen 0 0 7 0.000
containers gen 1 5 23 0.045
tuple_return_value gen 1 1 11 0.092
fib_iter gen 1 3 8 0.134
classes gen 2 2 13 0.157
files gen 2 1 10 0.207
cgi gen 2 4 9 0.222
control_flow gen 1 1 4 0.250
scoped_resource gen 2 3 7 0.287
parse gen 4 2 13 0.301
length gen 3 4 9 0.333
cartesian gen 7 6 8 0.872
varargs gen 20 18 18 1.112
escape gen 11 1 6 1.833
pea_hello gen NA NA 4 NA

raw benchmark files