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.

Reply via email to