summaryrefslogtreecommitdiff
path: root/Doc/using/cmdline.rst
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-03-14 12:04:26 +0100
committerVictor Stinner <victor.stinner@gmail.com>2016-03-14 12:04:26 +0100
commitd2f995ca30b1a4ec4bd04857fa7d3440dd373ec6 (patch)
treef299d73b0942b2a6fc6335d15a0997055f7d489e /Doc/using/cmdline.rst
parentfb4d4b905835c1da1318028f54f441970131c80f (diff)
downloadcpython-d2f995ca30b1a4ec4bd04857fa7d3440dd373ec6.tar.gz
Add PYTHONMALLOC env var
Issue #26516: * Add PYTHONMALLOC environment variable to set the Python memory allocators and/or install debug hooks. * PyMem_SetupDebugHooks() can now also be used on Python compiled in release mode. * The PYTHONMALLOCSTATS environment variable can now also be used on Python compiled in release mode. It now has no effect if set to an empty string. * In debug mode, debug hooks are now also installed on Python memory allocators when Python is configured without pymalloc.
Diffstat (limited to 'Doc/using/cmdline.rst')
-rw-r--r--Doc/using/cmdline.rst51
1 files changed, 45 insertions, 6 deletions
diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst
index ec744a351d..684ccb63de 100644
--- a/Doc/using/cmdline.rst
+++ b/Doc/using/cmdline.rst
@@ -621,6 +621,51 @@ conflict.
.. versionadded:: 3.4
+.. envvar:: PYTHONMALLOC
+
+ Set the Python memory allocators and/or install debug hooks.
+
+ Set the family of memory allocators used by Python:
+
+ * ``malloc``: use the :c:func:`malloc` function of the C library
+ for all Python memory allocators (:c:func:`PyMem_RawMalloc`,
+ :c:func:`PyMem_Malloc`, :c:func:`PyObject_Malloc` & cie).
+ * ``pymalloc``: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Calloc` and
+ :c:func:`PyObject_Realloc` use the :ref:`pymalloc allocator <pymalloc>`.
+ Other Python memory allocators (:c:func:`PyMem_RawMalloc`,
+ :c:func:`PyMem_Malloc` & cie) use :c:func:`malloc`.
+
+ Install debug hooks:
+
+ * ``debug``: install debug hooks on top of the default memory allocator
+ * ``malloc_debug``: same than ``malloc`` but also install debug hooks
+ * ``pymalloc_debug``: same than ``malloc`` but also install debug hooks
+
+ See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python
+ memory allocators.
+
+ .. note::
+ ``pymalloc`` and ``pymalloc_debug`` are not available if Python is
+ configured without ``pymalloc`` support.
+
+ .. versionadded:: 3.6
+
+
+.. envvar:: PYTHONMALLOCSTATS
+
+ If set to a non-empty string, Python will print statistics of the
+ :ref:`pymalloc memory allocator <pymalloc>` every time a new pymalloc object
+ arena is created, and on shutdown.
+
+ This variable is ignored if the :envvar:`PYTHONMALLOC` environment variable
+ is used to force the :c:func:`malloc` allocator of the C library, or if
+ Python is configured without ``pymalloc`` support.
+
+ .. versionchanged:: 3.6
+ This variable can now also be used on Python compiled in release mode.
+ It now has no effect if set to an empty string.
+
+
Debug-mode variables
~~~~~~~~~~~~~~~~~~~~
@@ -636,9 +681,3 @@ if Python was configured with the ``--with-pydebug`` build option.
If set, Python will dump objects and reference counts still alive after
shutting down the interpreter.
-
-
-.. envvar:: PYTHONMALLOCSTATS
-
- If set, Python will print memory allocation statistics every time a new
- object arena is created, and on shutdown.