Re: Large writable variables
Tom Lane <tgl@sss.pgh.pa.us>
Andres Freund <andres@anarazel.de> writes: > On 2018-10-15 16:36:26 -0400, Tom Lane wrote: >> Andres Freund <andres@anarazel.de> writes: >>> 0000000008585088 0000000000131104 b hist_entries >>> 0000000008716192 0000000000016384 b hist_start >> I'm unsure what fraction of processes would have use for these. > Yea, I'm not sure either. Although I suspect that given the cost of > compression having an "allocate on first use" check should be quite > doable. I don't think the extra check would be a problem, but if we end up needing the space in most processes, we're not really buying anything. It'd need some investigation. >> We could possibly fix these by changing the data structure so that >> what's in a ScanKeywords entry is an offset into some giant string >> constant somewhere. No idea how that would affect performance, but >> I do notice that we could reduce the sizeof(ScanKeyword), which can't >> hurt. > Yea, that might even help performancewise. Alternatively we could change > ScanKeyword to store the keyword name inline, but that'd be a measurable > size increase... Yeah. It also seems like doing it this way would improve locality of access: the pieces of the giant string would presumably be in the same order as the ScanKeywords entries, whereas with the current setup, who knows where the compiler has put 'em or in what order. We'd need some tooling to generate the constants that way, though; I can't see how to make it directly from kwlist.h. regards, tom lane
Commits
-
Apply unconstify() in more places
- 0a8590b2a09e 12.0 landed
-
Improve unconstify() documentation
- f2898de98a54 12.0 landed
-
Drop const cast from dlsym() calls
- e6f5d1accd3a 12.0 landed
-
Const-ify a few more large static tables.
- 48d818ede15b 12.0 landed
-
Improve tzparse's handling of TZDEFRULES ("posixrules") zone data.
- fb38d9a2e1ed 9.5.15 landed
- ec5fe7f799a4 9.4.20 landed
- e7eb07f70951 12.0 landed
- db4f9c0258be 11.1 landed
- c776cd47245a 9.3.25 landed
- 312f632005f3 10.6 landed
- 1164389e12b0 9.6.11 landed
-
Avoid statically allocating statement cache in ecpglib/prepare.c.
- e15aae829e3e 12.0 landed
-
Reorder FmgrBuiltin members, saving 25% in size.
- 28d750c0cd5b 12.0 landed
-
Add macro to cast away const without allowing changes to underlying type.
- d1211c63f010 12.0 landed
-
Mark constantly allocated dest receiver as const.
- 93ca02e00560 12.0 landed
-
Avoid statically allocating formatting.c's format string caches.
- fd85e9f78d44 12.0 landed
-
Correct constness of system attributes in heap.c & prerequisites.
- 02a30a09f9e5 12.0 landed
-
Avoid statically allocating gmtsub()'s timezone workspace.
- baa94ebe2cc8 9.3.25 landed
- 5ef71d4bd322 9.6.11 landed
- 27ba589b745f 9.4.20 landed
- 18c725413fad 9.5.15 landed
- d64a54fb9c81 10.6 landed
- d11268237378 11.1 landed
- 3dfef0c519de 12.0 landed
-
Correct constness of a few variables.
- 62649bad831f 12.0 landed
-
Move the replication lag tracker into heap memory.
- e73ca79fc78d 12.0 landed