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 0 1 189 0.000
loops gen 2 1 301 0.006
fib_iter gen 6 7 897 0.007
fib_recursive gen 10 10 903 0.011
asdl_generated gen 7 9 389 0.018
parse gen 26 24 777 0.034
classes gen 1 2 27 0.039
scoped_resource gen 46 41 1,035 0.044
containers gen 7 4 114 0.065
files gen 5 6 76 0.068
tuple_return_value gen 17 16 191 0.089
gc_stack_roots gen 2 1 13 0.134
length gen 41 41 212 0.192
cartesian gen 79 76 352 0.223
escape gen 100 96 365 0.274
cgi gen 267 265 533 0.502
varargs gen 19 17 26 0.735
control_flow gen 207 159 120 1.715
pea_hello gen NA NA 9 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.4 8.4 0.41
parse gen 3.7 3.8 9.0 0.41
cartesian gen 3.5 3.7 8.5 0.42
modules gen 3.5 3.8 8.5 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
control_flow gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.8 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.9 8.4 0.45
fib_iter gen 3.9 3.7 8.5 0.46
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 1 6 0.000
fib_iter gen 1 1 8 0.135
containers gen 4 6 27 0.157
classes gen 2 1 11 0.189
fib_recursive gen 1 1 5 0.197
modules gen 2 1 8 0.215
tuple_return_value gen 2 2 9 0.223
loops gen 2 2 7 0.273
scoped_resource gen 2 4 7 0.290
files gen 2 1 7 0.295
cgi gen 3 3 8 0.376
control_flow gen 2 3 4 0.497
parse gen 4 3 7 0.573
length gen 4 4 6 0.663
varargs gen 20 23 27 0.745
asdl_generated gen 4 2 5 0.781
escape gen 5 5 5 0.999
cartesian gen 13 10 7 1.844
pea_hello gen NA NA 9 NA

raw benchmark files