If non-zero, initialize the perf trampoline. See :ref:`perf_profiling`
for more information.
- Set by :option:`-X perf <-X>` command line option and by the
- :envvar:`PYTHONPERFSUPPORT` environment variable for perf support
- with stack pointers and :option:`-X perfjit <-X>` command line option
- and by the :envvar:`PYTHONPERFJITSUPPORT` environment variable for perf
+ Set by :option:`-X perf <-X>` command-line option and by the
+ :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable for perf support
+ with stack pointers and :option:`-X perf_jit <-X>` command-line option
+ and by the :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable for perf
support with DWARF JIT information.
Default: ``-1``.
``perf`` will take more time to process the data because it will need to use the DWARF debugging
information to unwind the stack and this is a slow process.
-To enable this mode, you can use the environment variable :envvar:`PYTHONPERFJITSUPPORT` or the
-:option:`-X perfjit <-X>` option, which will enable the JIT mode for the ``perf`` profiler.
+To enable this mode, you can use the environment variable :envvar:`PYTHON_PERF_JIT_SUPPORT` or the
+:option:`-X perf_jit <-X>` option, which will enable the JIT mode for the ``perf`` profiler.
When using the perf JIT mode, you need an extra step before you can run ``perf report``. You need to
call the ``perf inject`` command to inject the JIT information into the ``perf.data`` file.
- $ perf record -F 9999 -g --call-graph dwarf -o perf.data python -Xperfjit my_script.py
+ $ perf record -F 9999 -g --call-graph dwarf -o perf.data python -Xperf_jit my_script.py
$ perf inject -i perf.data --jit
$ perf report -g -i perf.data
or using the environment variable::
- $ PYTHONPERFJITSUPPORT=1 perf record -F 9999 -g --call-graph dwarf -o perf.data python my_script.py
+ $ PYTHON_PERF_JIT_SUPPORT=1 perf record -F 9999 -g --call-graph dwarf -o perf.data python my_script.py
$ perf inject -i perf.data --jit
$ perf report -g -i perf.data
.. versionadded:: 3.12
- * ``-X perfjit`` enables support for the Linux ``perf`` profiler with DWARF
+ * ``-X perf_jit`` enables support for the Linux ``perf`` profiler with DWARF
support. When this option is provided, the ``perf`` profiler will be able
- to report Python calls using DWARF ifnormation. This option is only available on
+ to report Python calls using DWARF information. This option is only available on
some platforms and will do nothing if is not supported on the current
- system. The default value is "off". See also :envvar:`PYTHONPERFJITSUPPORT`
+ system. The default value is "off". See also :envvar:`PYTHON_PERF_JIT_SUPPORT`
and :ref:`perf_profiling`.
.. versionadded:: 3.13
.. versionadded:: 3.12
-.. envvar:: PYTHONPERFJITSUPPORT
+.. envvar:: PYTHON_PERF_JIT_SUPPORT
If this variable is set to a nonzero value, it enables support for
the Linux ``perf`` profiler so Python calls can be detected by it
If set to ``0``, disable Linux ``perf`` profiler support.
- See also the :option:`-X perfjit <-X>` command-line option
+ See also the :option:`-X perf_jit <-X>` command-line option
and :ref:`perf_profiling`.
.. versionadded:: 3.13
* Add :ref:`support for the perf profiler <perf_profiling>` working without
frame pointers through the new environment variable
- :envvar:`PYTHONPERFJITSUPPORT` and command-line option :option:`-X perfjit
+ :envvar:`PYTHON_PERF_JIT_SUPPORT` and command-line option :option:`-X perf_jit
<-X>` (Contributed by Pablo Galindo in :gh:`118518`.)
* The new :envvar:`PYTHON_HISTORY` environment variable can be used to change
def run_perf(self, script_dir, script, activate_trampoline=True):
if activate_trampoline:
return run_perf(
- script_dir, sys.executable, "-Xperfjit", script, use_jit=True
+ script_dir, sys.executable, "-Xperf_jit", script, use_jit=True
)
return run_perf(script_dir, sys.executable, script, use_jit=True)
Allow the Linux perf support to work without frame pointers using perf's
advanced JIT support. The feature is activated when using the
-``PYTHONPERFJITSUPPORT`` environment variable or when running Python with
-``-Xperfjit``. Patch by Pablo Galindo
+``PYTHON_PERF_JIT_SUPPORT`` environment variable or when running Python with
+``-Xperf_jit``. Patch by Pablo Galindo.
if (xoption) {
config->perf_profiling = 1;
}
- env = config_get_env(config, "PYTHONPERFJITSUPPORT");
+ env = config_get_env(config, "PYTHON_PERF_JIT_SUPPORT");
if (env) {
if (_Py_str_to_int(env, &active) != 0) {
active = 0;
config->perf_profiling = 2;
}
}
- xoption = config_get_xoption(config, L"perfjit");
+ xoption = config_get_xoption(config, L"perf_jit");
if (xoption) {
config->perf_profiling = 2;
}
return NULL;
}
}
- else if (strcmp(backend, "perfjit") == 0) {
+ else if (strcmp(backend, "perf_jit") == 0) {
_PyPerf_Callbacks cur_cb;
_PyPerfTrampoline_GetCallbacks(&cur_cb);
if (cur_cb.write_state != _Py_perfmap_jit_callbacks.write_state) {