Skip to content

Commit

Permalink
GH-101520: Move tracemalloc functionality into core, leaving interfac…
Browse files Browse the repository at this point in the history
…e in Modules. (#104508)
  • Loading branch information
markshannon authored May 17, 2023
1 parent 2693194 commit f7df173
Show file tree
Hide file tree
Showing 11 changed files with 1,625 additions and 1,549 deletions.
1 change: 0 additions & 1 deletion Include/internal/pycore_pylifecycle.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ PyAPI_FUNC(int) _Py_IsLocaleCoercionTarget(const char *ctype_loc);

extern void _Py_InitVersion(void);
extern PyStatus _PyFaulthandler_Init(int enable);
extern int _PyTraceMalloc_Init(int enable);
extern PyObject * _PyBuiltin_Init(PyInterpreterState *interp);
extern PyStatus _PySys_Create(
PyThreadState *tstate,
Expand Down
34 changes: 34 additions & 0 deletions Include/tracemalloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,40 @@ PyAPI_FUNC(int) PyTraceMalloc_Untrack(
PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
unsigned int domain,
uintptr_t ptr);

/* Return non-zero if tracemalloc is tracing */
PyAPI_FUNC(int) _PyTraceMalloc_IsTracing(void);

/* Clear the tracemalloc traces */
PyAPI_FUNC(void) _PyTraceMalloc_ClearTraces(void);

/* Clear the tracemalloc traces */
PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetTraces(void);

/* Clear tracemalloc traceback for an object */
PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetObjectTraceback(PyObject *obj);

/* Initialize tracemalloc */
PyAPI_FUNC(int) _PyTraceMalloc_Init(void);

/* Start tracemalloc */
PyAPI_FUNC(int) _PyTraceMalloc_Start(int max_nframe);

/* Stop tracemalloc */
PyAPI_FUNC(void) _PyTraceMalloc_Stop(void);

/* Get the tracemalloc traceback limit */
PyAPI_FUNC(int) _PyTraceMalloc_GetTracebackLimit(void);

/* Get the memory usage of tracemalloc in bytes */
PyAPI_FUNC(size_t) _PyTraceMalloc_GetMemory(void);

/* Get the current size and peak size of traced memory blocks as a 2-tuple */
PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetTracedMemory(void);

/* Set the peak size of traced memory blocks to the current size */
PyAPI_FUNC(void) _PyTraceMalloc_ResetPeak(void);

#endif

#endif /* !Py_TRACEMALLOC_H */
1 change: 1 addition & 0 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,7 @@ PYTHON_OBJS= \
Python/sysmodule.o \
Python/thread.o \
Python/traceback.o \
Python/tracemalloc.o \
Python/getopt.o \
Python/pystrcmp.o \
Python/pystrtod.o \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Move the core functionality of the ``tracemalloc`` module in the ``Python/``
folder, leaving just the module wrapper in ``Modules/``.
Loading

0 comments on commit f7df173

Please sign in to comment.