Thread: pgsql: Specialize MemoryContextMemAllocated().

pgsql: Specialize MemoryContextMemAllocated().

From
Jeff Davis
Date:
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(-)