[PATCH] Improve performance of strncpy

Rich Felker dalias@libc.org
Wed Sep 10 18:02:00 GMT 2014


On Wed, Sep 10, 2014 at 07:34:40PM +0200, Florian Weimer wrote:
> On 09/10/2014 05:21 PM, Wilco Dijkstra wrote:
> >Yes, you're right, I timed it and there is actually little difference, while
> >the code is now even simpler. New version below (not attaching results in bad
> >characters due to various mail servers changing line endings).
> >
> >OK for commit?
> 
> I think you could simplify it down to strnlen, memcpy, and memset.

I don't think that's an improvement, at least not in the general case.
It involves iterating twice over the source string, which for long
strings could mean blowing the whole cache twice and fetching from
main memory twice. There's a good reason that string operations are
usually implemented to perform the copy and length computation
together in a single pass.

Rich



More information about the Libc-alpha mailing list