Date: Thu, 7 Mar 2002 11:26:43 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Terry Lambert <tlambert2@mindspring.com> Cc: "Rogier R. Mulhuijzen" <drwilco@drwilco.net>, Mike Silbersack <silby@silby.com>, Tom <bifrost@minions.com>, Dimitar Peikov <mitko@rila.bg>, cjp <cjp@sandstorm.net>, freebsd-hackers@FreeBSD.ORG Subject: Re: Swapping performance Message-ID: <200203071926.g27JQhU68778@apollo.backplane.com> References: <20020307095452.D18855-100000@frond.minions.com> <5.1.0.14.0.20020307193205.01c3b0f0@mail.drwilco.net> <3C87BD3D.49BE8105@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
:> ptr = (char *) malloc(MALLOC_SIZE); :> bzero(ptr, MALLOC_SIZE); : :The bzero is unnecessary on FreeBSD. Allocated pages start out :zero'ed. Part of the performance issue might be that FreeBSD is :being asked to zero the pages twice, instead of once. malloc() does not guarentee a zero'd page, even though the side effect of a malloc() that large could very well be to map demand-zero-fill space. The bzero() will have the effect of force-instantiating the storage for the malloc'd space. It's appropriate for the test, I suppose, since the test is trying to test swap performance. :It might be more interesting to mmap() anonymous memory :(e.g. out of /dev/zero), rather than using malloc, and :then use that memory the same way, instead (it's swap :backed, as well). Giving it an madvise, to tell it your :intended access pattern would also be useful. Just mmap(... MAP_ANON...). It will make no difference, though, because that is effectively what a malloc() of that size will do anyway. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203071926.g27JQhU68778>