From owner-cvs-src@FreeBSD.ORG Sat Apr 2 22:58:32 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 830FA16A4CE; Sat, 2 Apr 2005 22:58:32 +0000 (GMT) Received: from dong.ci0.org (cognet.ci0.org [80.65.224.102]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4304243D46; Sat, 2 Apr 2005 22:58:31 +0000 (GMT) (envelope-from doginou@dong.ci0.org) Received: from dong.ci0.org (localhost.ci0.org [127.0.0.1]) by dong.ci0.org (8.13.1/8.12.11) with ESMTP id j32N6MiU065534; Sun, 3 Apr 2005 01:06:23 +0200 (CEST) (envelope-from doginou@dong.ci0.org) Received: (from doginou@localhost) by dong.ci0.org (8.13.3/8.12.11/Submit) id j32N6MRc065533; Sun, 3 Apr 2005 01:06:22 +0200 (CEST) (envelope-from doginou) Date: Sun, 3 Apr 2005 01:06:22 +0200 From: Olivier Houchard To: src-committers@FreeBSD.ORG, cvs-src@FreeBSD.ORG, cvs-all@FreeBSD.ORG Message-ID: <20050402230622.GA65020@ci0.org> References: <200504021852.j32IqjhR031587@repoman.freebsd.org> <20050402185706.GA19208@VARK.MIT.EDU> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050402185706.GA19208@VARK.MIT.EDU> User-Agent: Mutt/1.4.1i cc: David Schultz Subject: Re: cvs commit: src/lib/libc/string strcspn.c strspn.c src/sys/libkern strspn.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Apr 2005 22:58:32 -0000 On Sat, Apr 02, 2005 at 01:57:06PM -0500, David Schultz wrote: > 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... For what it worth, I noticed a small performance increase when using optimized versions of strcmp and strncmp in libkern on arm, so it might be a good idea. Olivier