Re: Large writable variables

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Thomas Munro <thomas.munro@enterprisedb.com>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-10-15T21:57:56Z
Lists: pgsql-hackers
On 2018-10-16 10:16:34 +1300, Thomas Munro wrote:
> 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

> From f3fb64e67c1e86e11dfafc8a712e9750f650f60b Mon Sep 17 00:00:00 2001
> From: Thomas Munro <thomas.munro@enterprisedb.com>
> Date: Tue, 16 Oct 2018 10:08:57 +1300
> Subject: [PATCH] Move the replication lag tracker into heap memory.
> 
> Andres Freund complained about the 128KB of .bss occupied by LagTracker.
> It's only needed in the walsender process, so allocate it in heap
> memory there.

Cool, let's do that.

Greetings,

Andres Freund


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.