On Fri, Sep 2, 2011 at 4:08 PM, Michael Hope michael.hope@linaro.org wrote:
Hi Dave. I've been hacking away and have checked in a couple of benchmarking and plotting scripts to lp:cortex-strings. The current results are at: http://people.linaro.org/~michaelh/incoming/strings-performance/
All are done on an A9. The results are very incomplete due to how long things take to run. I'll leave ursa3 doing these over the weekend which should flesh this out for the other routines.
Right, that's done. The new graphs are up at: http://people.linaro.org/~michaelh/incoming/strings-performance/
The original data is at: http://people.linaro.org/~michaelh/incoming/strings-performance/epic.txt
Here's the relative performance for all routines with eight byte aligned data and 128 byte blocks: http://people.linaro.org/~michaelh/incoming/strings-performance/top-000128.p...
memchr, memcpy, strcpy, and strlen all look good at this block size.
Here's the speed versus block size for eight byte aligned data: http://people.linaro.org/~michaelh/incoming/strings-performance/sizes-memchr... http://people.linaro.org/~michaelh/incoming/strings-performance/sizes-memset... http://people.linaro.org/~michaelh/incoming/strings-performance/sizes-strchr... http://people.linaro.org/~michaelh/incoming/strings-performance/sizes-strchr... http://people.linaro.org/~michaelh/incoming/strings-performance/sizes-strcmp... http://people.linaro.org/~michaelh/incoming/strings-performance/sizes-strcpy... http://people.linaro.org/~michaelh/incoming/strings-performance/sizes-strlen...
memchr is good. memset could be better for blocks of less than 1k. strchr gets second place but is eclipsed by newlib's version. strcmp need work. strcmp is good. strlen is good but the wobbles could use some investigation.
And here's a graph of how the performance changes with initial alignment: http://people.linaro.org/~michaelh/incoming/strings-performance/alignment-me...
-- Michael