Date: Sun, 05 Jun 2005 02:09:53 +0200 From: Martin <nakal@nurfuerspam.de> To: freebsd-current@freebsd.org Subject: Optimizing libc/string for amd64(?) Message-ID: <42A242D1.4000002@nurfuerspam.de>
next in thread | raw e-mail | index | archive | help
Hello, I ran nbench on different workstations and noticed that amd64-platform is really bad when doing "STRINGSORT". Sempron 2200+ (i386) : 88 iterations/second Athlon64 3000+ (amd64): 32.15 iterations/second I looked inside nbench and it seems to call memmove very often. This is OK, in my opinion, so I investigated further. I've just looked inside libc how memmove/memcpy is handled there. The function is inside bcopy.c. I noticed that the "word" which is used for copying has the size of "int". Wouldn't it be better to set it to "typedef long word"? OpenBSD is using "long" there, for example, as I noticed later. I don't have amd64 at home, so I cannot really test everything out. Can someone of you take a look at the code in libc/string? There are various places that are using "int" instead of "long", e.g. also in memset-code. Can anyone confirm this bad performance with STRINGSORT on amd64? Martin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42A242D1.4000002>