Date: Tue, 14 Feb 2012 19:25:14 +0100 From: Bernard van Gastel <bvgastel@bitpowder.com> To: hackers@freebsd.org Subject: memmem small optimalisation Message-ID: <1BDAF8C6-66A5-4F4F-A2CD-3928A0B10D48@bitpowder.com>
index | next in thread | raw e-mail
Hi all, I was looking through the sources of memmove at [1], and saw a (very) small optimization opportunity. The 'memcmp' also compares the current character, but the current character is already checked (first part of the condition). As we already know the size of the string is greater as 1 (it is checked before the loop), it is possible to replace the memcmp with (possible doing the decrease of s_len once outside the loop): memcpy(&cur[1], &cs[1], s_len-1) Am I missing something? E.g. is readability more important as speed? This made me wonder what generally the tradeoff is that has to be taken into account in these cases? Regards, Bernard [1] http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/string/memmem.c?rev=1.2 , excerpt below: for (cur = (char *)cl; cur <= last; cur++) if (cur[0] == cs[0] && memcmp(cur, cs, s_len) == 0) return cur; --- Bernard van Gastel Bit Powder RSS Junkie? Download the app with push notifications for Android: https://market.android.com/details?id=com.bitpowder.rssjunkiehelp
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1BDAF8C6-66A5-4F4F-A2CD-3928A0B10D48>
