At 7:15 AM +0000 5/29/02, Mike Lambert (via RT) wrote:
>We win on the header-intensive stuff. Not sure why it would be slower on
>the gc_header_new tests. My best guess is that we know are touching the
>contents of the buffer header, which we weren't doing before. And when we
>allocate a bunch of new headers, we have to explcitly free them all, which
>involves touching the first pointer of every buffer in that memory, as
>opposed to one pointer in the Parrot_allocated memory we used before.

It's likely a cache coherency and dirty cache like issue. With the 
current method the most recently freed PMC is the first to be used, 
and we touch multiple words in each cache line when we stow the 
pointers into the free list.

On the other hand, the old way will fail in low memory situations 
which by itself makes the method unusable.
-- 
                                         Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                       teddy bears get drunk

Reply via email to