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