Re: Large writable variables

Thomas Munro <thomas.munro@enterprisedb.com>

From: Thomas Munro <thomas.munro@enterprisedb.com>
To: Andres Freund <andres@anarazel.de>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-10-15T21:16:34Z
Lists: pgsql-hackers

Attachments

On Tue, Oct 16, 2018 at 9:07 AM Andres Freund <andres@anarazel.de> wrote:
> $ nm -t d --size-sort -r -S src/backend/postgres|grep '\b[bB]\b'|head
> 0000000008251872 0000000000131144 b LagTracker
...
> So we have a two variables sized 130kb. Yikes.
...
> that's not actually used very often, nor in all processes... Thomas?

Yeah, here's a patch to move it in to the heap.

-- 
Thomas Munro
http://www.enterprisedb.com

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.