Re: equal() perf tweak - Mailing list pgsql-patches

From Neil Conway
Subject Re: equal() perf tweak
Date
Msg-id 87ptg6f5e0.fsf@mailbox.samurai.com
Whole thread Raw
In response to Re: equal() perf tweak  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: equal() perf tweak  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: equal() perf tweak  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-patches
Tom Lane <tgl@sss.pgh.pa.us> writes:
> This does suggest that it might be worth making the struct layout be
>
>     int NodeTag;
>     int length;
>     foo *head;
>     foo *tail;
>
> since this would avoid some padding overhead on a machine where pointers
> are 8 bytes and need 8-byte alignment.  It probably doesn't help given
> the current implementation of palloc, but why throw away padding
> space?

Interesting. I've heard in some shops it is standard policy to order
the fields in all structs by their descending sizes (making allowances
for platform-specific variations), so as to reduce padding. Do you
think it would be worthwhile to systematically make this kind of
reorganization throughout the backend?

(Of course, we'd need to be weary of code that depends on order of the
fields in structs, naturally -- such as the "NodeTag must be the first
field" rule.)

-Neil


pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: equal() perf tweak
Next
From: Gaetano Mendola
Date:
Subject: Re: equal() perf tweak