Hi, On 2018-10-16 01:59:00 -0400, Tom Lane wrote: > I wrote: > > Andres Freund <and...@anarazel.de> writes: > >> top unitialized allocations: > >> 0000000008435040 0000000000085280 b DCHCache > >> 0000000008391168 0000000000043840 b NUMCache > > > Here's a patch to improve that situation. > > Hm, looking at that more closely, there's a problem with the idea of > allocating the cache slots one-at-a-time. Currently, > sizeof(DCHCacheEntry) and sizeof(NUMCacheEntry) are each just a bit more > than a power of 2, which would cause palloc to waste nearly 50% of the > allocation it makes for them.
Hm, that's a bit annoying... > We could forget the one-at-a-time idea and just allocate the whole > array on first use, but I feel like that's probably not a good answer. I suspect it'd be fine, but obviously we can do better. > Also, I noticed that the biggest part of those structs are arrays of > FormatNode, which has been designed with complete lack of thought about > size or padding issues. We can very easily cut it in half on 64-bit > machines. Heh, neat. I feel like we've paid very little attention to that in a myriad of places :( Greetings, Andres Freund