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
loops gen 0 3 295 0.000
fib_iter gen 4 4 901 0.004
modules gen 2 0 191 0.009
fib_recursive gen 11 11 893 0.012
asdl_generated gen 5 11 390 0.014
parse gen 23 27 771 0.030
scoped_resource gen 45 45 1,044 0.043
containers gen 10 5 122 0.083
tuple_return_value gen 19 20 200 0.096
classes gen 3 0 31 0.102
files gen 7 4 71 0.104
gc_stack_roots gen 2 2 16 0.118
length gen 44 41 208 0.211
cartesian gen 91 83 334 0.272
escape gen 106 95 359 0.295
cgi gen 268 263 515 0.521
varargs gen 16 28 16 1.040
control_flow gen 210 159 114 1.843
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.5 0.36
fib_iter gen 3.4 3.8 8.4 0.41
gc_stack_roots gen 3.4 3.5 8.4 0.41
asdl_generated gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
control_flow gen 3.8 3.8 8.7 0.44
modules gen 3.8 3.8 8.7 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
files gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
length gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.5 49.1 0.58
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 4 16 0.000
classes gen 0 3 8 0.000
control_flow gen 0 0 8 0.000
escape gen 0 8 4 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 4 12 0.000
gc_stack_roots gen 0 0 4 0.000
length gen 0 4 8 0.000
modules gen 0 2 8 0.000
containers gen 5 9 20 0.257
loops gen 4 0 12 0.312
scoped_resource gen 4 0 12 0.338
varargs gen 50 36 63 0.780
parse gen 8 0 8 0.949
fib_iter gen 4 4 4 0.955
cartesian gen 4 4 4 0.993
asdl_generated gen 5 0 4 1.337
pea_hello gen NA NA 5 NA
tuple_return_value gen 0 0 0 NA

raw benchmark files