Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Jan 2009 22:53:52 -0800
From:      Xin LI <delphij@delphij.net>
To:        =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= <des@des.no>
Cc:        d@delphij.net, freebsd-arch@FreeBSD.org
Subject:   Re: RFC: MI strlen()
Message-ID:  <496C3A80.5040007@delphij.net>
In-Reply-To: <86zlhw5zsr.fsf@ds4.des.no>
References:  <4966B5D4.7040709@delphij.net> <86zlhw5zsr.fsf@ds4.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dag-Erling Smørgrav wrote:
> Xin LI <delphij@delphij.net> writes:
>> Here is a new implementation of strlen() which employed the bitmask
>> skill in order to achieve better performance on modern hardware.
> 
> Why bother?  Do we have code that uses strlen() heavily in performance-
> critical regions?  Does anybody?

I agree that strlen() should never be used in performance-sensitive
regions, but given we do not have assembly optimized versions of these
functions for amd64 and almost everybody else has it, having a C version
that gives similar performance is valuable.  Also, worldstone with -j9
on 2x4core machine with both src/ and obj/ in tmpfs, seems to have
small, but positive effect:

Unpatched libc:
     1400.97 real      4159.34 user      2901.08 sys
     1396.73 real      4159.06 user      2906.16 sys
     1380.27 real      4158.20 user      2803.22 sys

Patched libc:
     1363.29 real      4154.89 user      2749.94 sys
     1373.96 real      4150.45 user      2830.46 sys
     1368.62 real      4152.48 user      2838.52 sys

(with 'make cleanworld' between builds)

Cheers,
- --
Xin LI <delphij@delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)

iEYEARECAAYFAklsOoAACgkQi+vbBBjt66COQgCfTmpQK9YliCxpdJkckJ2/cZim
NzEAoKRqC2HN1FtKRWaZhstYyVjYeewr
=eeea
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?496C3A80.5040007>