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 1 13 0.000
modules gen 0 1 205 0.000
loops gen 2 1 305 0.006
fib_iter gen 6 6 930 0.007
fib_recursive gen 9 10 890 0.010
asdl_generated gen 10 8 383 0.025
classes gen 1 2 30 0.034
parse gen 27 25 769 0.035
scoped_resource gen 46 39 1,051 0.044
files gen 4 6 74 0.056
containers gen 7 4 121 0.056
tuple_return_value gen 18 18 194 0.094
length gen 40 38 211 0.189
cartesian gen 86 77 343 0.250
escape gen 104 101 357 0.291
cgi gen 265 269 527 0.502
varargs gen 22 14 22 1.012
control_flow gen 208 160 115 1.807
pea_hello gen NA NA 11 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.3 4.5 12.3 0.35
parse gen 3.7 3.8 9.1 0.40
gc_stack_roots gen 3.4 3.4 8.4 0.41
scoped_resource gen 3.5 3.5 8.4 0.42
files gen 3.7 3.8 8.5 0.43
length gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
control_flow gen 3.7 3.8 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
loops gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.9 8.4 0.45
tuple_return_value gen 3.9 3.8 8.4 0.47
containers gen 28.9 28.8 49.1 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
asdl_generated gen 1 3 10 0.096
fib_iter gen 1 2 7 0.154
tuple_return_value gen 1 0 6 0.168
containers gen 5 6 22 0.220
modules gen 2 1 7 0.247
control_flow gen 2 3 8 0.250
classes gen 2 1 8 0.257
loops gen 2 2 7 0.262
fib_recursive gen 2 1 7 0.280
scoped_resource gen 2 7 7 0.284
gc_stack_roots gen 2 1 5 0.328
parse gen 3 2 9 0.333
files gen 3 2 9 0.343
cgi gen 5 0 9 0.555
varargs gen 17 26 31 0.555
escape gen 6 2 9 0.665
length gen 5 7 6 0.830
cartesian gen 6 8 4 1.511
pea_hello gen NA NA 7 NA

raw benchmark files