Thread: pgsql: Specialize MemoryContextMemAllocated().
Specialize MemoryContextMemAllocated(). An AllocSet doubles the size of allocated blocks (up to maxBlockSize), which means that the current block can represent half of the total allocated space for the memory context. But the free space in the current block may never have been touched, so don't count the untouched memory as allocated for the purposes of MemoryContextMemAllocated(). Discussion: https://postgr.es/m/ec63d70b668818255486a83ffadc3aec492c1f57.camel@j-davis.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/e00912e11a9ec2d29274ed8a6465e81385906dc2 Modified Files -------------- src/backend/utils/mmgr/aset.c | 46 ++++++++++++++++++++++++++----------- src/backend/utils/mmgr/generation.c | 25 ++++++++++++++++---- src/backend/utils/mmgr/mcxt.c | 3 +-- src/backend/utils/mmgr/slab.c | 29 +++++++++++++++++------ src/include/nodes/memnodes.h | 2 +- 5 files changed, 77 insertions(+), 28 deletions(-)