Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Apr 2005 13:57:06 -0500
From:      David Schultz <das@FreeBSD.ORG>
To:        src-committers@FreeBSD.ORG, cvs-src@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/lib/libc/string strcspn.c strspn.c src/sys/libkern strspn.c
Message-ID:  <20050402185706.GA19208@VARK.MIT.EDU>
In-Reply-To: <200504021852.j32IqjhR031587@repoman.freebsd.org>
References:  <200504021852.j32IqjhR031587@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Apr 02, 2005, David Schultz wrote:
> das         2005-04-02 18:52:44 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     lib/libc/string      strcspn.c strspn.c 
>     sys/libkern          strspn.c 
>   Log:
>   Replace the current strspn() and strcspn() with significantly faster
>   implementations inspired by the ones in DragonFly.  Unlike the
>   DragonFly versions, these have a small data cache footprint, and my
>   tests show that they're never slower than the old code except when the
>   charset or the span is 0 or 1 characters.  This implementation is
>   generally faster than DragonFly until either the charset or the span
>   gets in the ballpark of 32 to 64 characters.

BTW, anyone know a good reason why we have optimized string
functions (e.g. strcmp(), strcpy()) in libc, but not in libkern?
In testing strcmp(s, s), I found that the libc version on i386 is
11% faster when s has length 1 and 4% faster when s has length 400.

The kernel has many consumers of these functions, but maybe their
performance is irrelevant in the grand scheme of things.
Certainly things like bcopy and bswap are more important...



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