summaryrefslogtreecommitdiffstats
path: root/Objects/obmalloc.c
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2022-02-01 15:05:18 (GMT)
committerGitHub <noreply@github.com>2022-02-01 15:05:18 (GMT)
commit48be46ec1f3f8010570165daa1da4bf9961f3a83 (patch)
tree03c3f5810599572799b4645477622af83aa30ba2 /Objects/obmalloc.c
parent913e340a323c7e61ae6e4acbb1312b4342657bec (diff)
downloadcpython-48be46ec1f3f8010570165daa1da4bf9961f3a83.zip
cpython-48be46ec1f3f8010570165daa1da4bf9961f3a83.tar.gz
cpython-48be46ec1f3f8010570165daa1da4bf9961f3a83.tar.bz2
bpo-46072: Add some object layout and allocation stats (GH-31051)
Diffstat (limited to 'Objects/obmalloc.c')
-rw-r--r--Objects/obmalloc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c
index e3df7e8..bad4dc0 100644
--- a/Objects/obmalloc.c
+++ b/Objects/obmalloc.c
@@ -1,5 +1,6 @@
#include "Python.h"
#include "pycore_pymem.h" // _PyTraceMalloc_Config
+#include "pycore_code.h" // stats
#include <stdbool.h>
#include <stdlib.h> // malloc()
@@ -695,6 +696,7 @@ PyObject_Malloc(size_t size)
/* see PyMem_RawMalloc() */
if (size > (size_t)PY_SSIZE_T_MAX)
return NULL;
+ OBJECT_STAT_INC(allocations);
return _PyObject.malloc(_PyObject.ctx, size);
}
@@ -704,6 +706,7 @@ PyObject_Calloc(size_t nelem, size_t elsize)
/* see PyMem_RawMalloc() */
if (elsize != 0 && nelem > (size_t)PY_SSIZE_T_MAX / elsize)
return NULL;
+ OBJECT_STAT_INC(allocations);
return _PyObject.calloc(_PyObject.ctx, nelem, elsize);
}
@@ -719,6 +722,7 @@ PyObject_Realloc(void *ptr, size_t new_size)
void
PyObject_Free(void *ptr)
{
+ OBJECT_STAT_INC(frees);
_PyObject.free(_PyObject.ctx, ptr);
}