Re: Large writable variables

Gavin Flower <gavinflower@archidevsys.co.nz>

From: Gavin Flower <GavinFlower@archidevsys.co.nz>
To: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org, Thomas Munro <thomas.munro@enterprisedb.com>
Date: 2018-10-16T20:38:18Z
Lists: pgsql-hackers
On 17/10/2018 09:36, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
>> Attached is a patch that shrinks fmgr_builtins by 25%. That seems
>> worthwhile, it's pretty frequently accessed, making it more dense is
>> helpful.  Unless somebody protests soon, I'm going to apply that...
> Hah.  I'm pretty sure that struct *was* set up with an eye to padding ...
> on 32-bit machines.  This does make it shorter on 64-bit, but also
> makes the size not a power of 2, which might add a few cycles to
> array indexing calculations.  Might be worth checking whether that's
> going to be an issue anywhere.
>
> What's the point of the extra const decoration on funcName?  ISTM
> the whole struct should be const, or not.
>
> 			regards, tom lane
>
Would it be useful to add dummy variable(s) to bring it up to a power of 2?


Cheers,
Gavin



Commits

  1. Apply unconstify() in more places

  2. Improve unconstify() documentation

  3. Drop const cast from dlsym() calls

  4. Const-ify a few more large static tables.

  5. Improve tzparse's handling of TZDEFRULES ("posixrules") zone data.

  6. Avoid statically allocating statement cache in ecpglib/prepare.c.

  7. Reorder FmgrBuiltin members, saving 25% in size.

  8. Add macro to cast away const without allowing changes to underlying type.

  9. Mark constantly allocated dest receiver as const.

  10. Avoid statically allocating formatting.c's format string caches.

  11. Correct constness of system attributes in heap.c & prerequisites.

  12. Avoid statically allocating gmtsub()'s timezone workspace.

  13. Correct constness of a few variables.

  14. Move the replication lag tracker into heap memory.