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 0 185 0.005
fib_iter gen 7 6 898 0.007
fib_recursive gen 10 10 903 0.011
loops gen 4 3 299 0.012
asdl_generated gen 10 11 389 0.025
classes gen 1 2 32 0.032
parse gen 25 26 772 0.032
scoped_resource gen 45 44 1,040 0.043
containers gen 5 5 110 0.044
files gen 4 7 78 0.048
tuple_return_value gen 17 15 195 0.088
gc_stack_roots gen 2 2 11 0.152
length gen 40 43 212 0.188
cartesian gen 86 81 333 0.258
escape gen 103 100 360 0.286
cgi gen 265 264 528 0.502
varargs gen 17 17 29 0.586
control_flow gen 208 161 114 1.822
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.5 4.6 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.3 0.41
cgi gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
loops gen 3.7 3.8 8.7 0.42
escape gen 3.7 3.7 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.8 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
gc_stack_roots gen 0 0 8 0.000
loops gen 0 0 7 0.000
modules gen 1 2 10 0.088
fib_iter gen 1 2 10 0.094
asdl_generated gen 1 0 8 0.133
fib_recursive gen 1 1 7 0.141
control_flow gen 1 2 7 0.143
containers gen 7 5 34 0.199
tuple_return_value gen 2 3 8 0.239
scoped_resource gen 2 1 7 0.286
cgi gen 3 5 8 0.375
escape gen 3 2 8 0.375
classes gen 2 1 5 0.408
parse gen 5 1 11 0.456
files gen 4 1 6 0.624
length gen 6 3 7 0.855
varargs gen 22 22 24 0.916
cartesian gen 7 5 7 1.009
pea_hello gen NA NA 7 NA

raw benchmark files