]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
Issue #28618: Make hot functions using __attribute__((hot))
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 11 Nov 2016 01:13:35 +0000 (02:13 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Fri, 11 Nov 2016 01:13:35 +0000 (02:13 +0100)
commitc6944e7edcacc8960170719623c325aefaf23cac
treeba703132b9c442a61873cd6644b652641978fcf0
parent0cae609847cccd78d3a960a70782c7b7ee891e3e
Issue #28618: Make hot functions using __attribute__((hot))

When Python is not compiled with PGO, the performance of Python on call_simple
and call_method microbenchmarks depend highly on the code placement. In the
worst case, the performance slowdown can be up to 70%.

The GCC __attribute__((hot)) attribute helps to keep hot code close to reduce
the risk of such major slowdown. This attribute is ignored when Python is
compiled with PGO.

The following functions are considered as hot according to statistics collected
by perf record/perf report:

* _PyEval_EvalFrameDefault()
* call_function()
* _PyFunction_FastCall()
* PyFrame_New()
* frame_dealloc()
* PyErr_Occurred()
Include/pyport.h
Objects/frameobject.c
Python/ceval.c
Python/errors.c