Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PEP 683: Update the Perf Regression With the Final Benchmark Results #3519

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions peps/pep-0683.rst
Original file line number Diff line number Diff line change
Expand Up @@ -230,20 +230,17 @@ those described above in `Motivation`_, reflect this improvement.
Performance
-----------

A naive implementation shows `a 4% slowdown`_. We have demonstrated
a return to ~performance-neutral~ with a handful of basic mitigations
applied. See the `mitigations`_ section below.
A naive implementation shows `a 2% slowdown`_ (3% with MSVC).
We have demonstrated a return to ~performance-neutral~ with a handful
of basic mitigations applied. See the `mitigations`_ section below.

.. _a 2% slowdown: https://github.com/python/cpython/pull/19474#issuecomment-1502245844

On the positive side, immortal objects save a significant amount of
memory when used `with a pre-fork model <Facebook>`_. Also, immortal
objects provide opportunities for specialization in the eval loop that
would improve performance.

.. _a 4% slowdown: https://github.com/python/cpython/pull/19474#issuecomment-1032944709

TODO: Update the performance impact for the latest branch
(both for GCC and for clang).

Backward Compatibility
----------------------

Expand Down