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 1 193 0.005
fib_iter gen 8 8 900 0.009
loops gen 3 2 298 0.010
fib_recursive gen 10 11 894 0.011
asdl_generated gen 9 10 389 0.023
parse gen 25 24 773 0.032
scoped_resource gen 46 43 1,068 0.043
containers gen 8 7 123 0.063
classes gen 2 2 30 0.072
files gen 6 6 79 0.073
tuple_return_value gen 18 15 196 0.094
gc_stack_roots gen 2 1 13 0.137
length gen 45 41 213 0.210
cartesian gen 84 77 335 0.250
escape gen 96 98 361 0.266
cgi gen 266 269 532 0.501
varargs gen 21 11 22 0.963
control_flow gen 208 160 114 1.825
pea_hello gen NA NA 13 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
parse gen 3.7 3.8 9.1 0.40
cartesian gen 3.5 3.7 8.5 0.42
escape gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
fib_recursive gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
modules gen 3.7 3.7 8.7 0.42
cgi gen 3.7 3.7 8.5 0.43
control_flow gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
containers gen 28.9 28.9 49.2 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 0 6 0.000
gc_stack_roots gen 0 1 7 0.000
length gen 0 5 6 0.000
classes gen 1 2 10 0.108
scoped_resource gen 1 3 8 0.126
tuple_return_value gen 1 4 7 0.146
loops gen 1 1 6 0.161
containers gen 5 4 24 0.199
control_flow gen 2 4 9 0.222
asdl_generated gen 2 1 8 0.251
modules gen 1 1 4 0.254
fib_recursive gen 1 0 4 0.256
files gen 2 2 5 0.386
varargs gen 18 28 32 0.568
parse gen 6 3 8 0.737
cgi gen 6 1 7 0.858
escape gen 10 5 10 1.002
cartesian gen 8 10 6 1.331
pea_hello gen NA NA 6 NA

raw benchmark files