This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH] Improve performance of strncpy
- From: Rich Felker <dalias at libc dot org>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: Wilco Dijkstra <wdijkstr at arm dot com>, azanella at linux dot vnet dot ibm dot com, libc-alpha at sourceware dot org
- Date: Wed, 10 Sep 2014 14:01:44 -0400
- Subject: Re: [PATCH] Improve performance of strncpy
- Authentication-results: sourceware.org; auth=none
- References: <001301cfcd0a$f0b62670$d2227350$ at com> <54108BB0 dot 90902 at redhat dot com>
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.