On 29 May 2002, Mike Lambert wrote: > # New Ticket Created by Mike Lambert > # Please include the string: [netlabs #634] > # in the subject line of all future correspondence about this issue. > # <URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=634 > > > > Peter recently submitted a patch to RT that uses a linked-list for free > headers. Here are before and after results: > > before after > gc_alloc_new 4.155999 4.016 > gc_alloc_reuse 16.574 12.648002 > gc_generations 4.025 3.975001 > gc_header_new 3.686 3.986 > gc_header_reuse 5.577999 4.175998 > gc_waves_headers 3.815002 3.595999 > gc_waves_sizeable_data 8.383002 8.381999 > gc_waves_sizeable_hdrs 5.668 5.396999 > > 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. > > IMO, the gc_alloc_reuse and gc_header_reuse benchmarks more than > outweigh gc_header_new. > > The portion of Peter's patch to do just this change is included below. > > Mike Lambert >
Applied, thanks.