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
gc_stack_roots gen 0 2 10 0.000
modules gen 1 1 188 0.005
fib_iter gen 7 7 945 0.007
loops gen 3 2 304 0.009
fib_recursive gen 10 10 885 0.011
asdl_generated gen 9 9 383 0.023
parse gen 29 22 775 0.038
scoped_resource gen 44 44 1,066 0.041
containers gen 7 5 115 0.065
files gen 5 5 79 0.065
tuple_return_value gen 17 18 193 0.089
classes gen 3 1 31 0.102
length gen 43 42 211 0.205
cartesian gen 87 84 348 0.248
escape gen 99 98 359 0.276
cgi gen 264 267 526 0.501
varargs gen 18 19 26 0.698
control_flow gen 210 157 114 1.843
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.3 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
fib_recursive gen 3.5 3.5 8.4 0.42
scoped_resource gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.8 9.0 0.44
cgi gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
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.8 3.7 8.3 0.46
modules gen 3.9 3.8 8.5 0.46
fib_iter gen 3.9 3.8 8.4 0.47
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.4 5.6 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 2 7 0.000
modules gen 1 1 9 0.097
length gen 1 3 10 0.100
parse gen 1 5 9 0.112
fib_iter gen 1 1 8 0.119
control_flow gen 1 4 8 0.125
containers gen 4 5 27 0.159
fib_recursive gen 1 1 6 0.163
gc_stack_roots gen 2 0 9 0.191
tuple_return_value gen 2 0 10 0.202
loops gen 1 1 4 0.226
asdl_generated gen 2 2 6 0.322
scoped_resource gen 3 2 9 0.333
files gen 2 3 6 0.344
cgi gen 6 1 9 0.667
varargs gen 21 20 26 0.815
cartesian gen 5 3 6 0.828
escape gen 7 5 5 1.387
pea_hello gen NA NA 5 NA

raw benchmark files