mirror of https://github.com/python/cpython
Move other improvements and optimization sections above deprecated.
This arrangement means the sections that have summaries come first, and everything else comes after those.
This commit is contained in:
parent
4d48f2a6e7
commit
bcaaecfe1e
|
@ -937,48 +937,6 @@ Add a filter function to ignore some packages (tests for instance),
|
||||||
(Contributed by Christian Tismer in :issue:`19274`.)
|
(Contributed by Christian Tismer in :issue:`19274`.)
|
||||||
|
|
||||||
|
|
||||||
Other improvements
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Tab-completion is now enabled by default in the interactive interpreter.
|
|
||||||
(Contributed by Antoine Pitrou and Éric Araujo in :issue:`5845`.)
|
|
||||||
|
|
||||||
* Invoking the Python interpreter with ``--version`` now outputs the version to
|
|
||||||
standard output instead of standard error (:issue:`18338`). Similar changes
|
|
||||||
were made to :mod:`argparse` (:issue:`18920`) and other modules that have
|
|
||||||
script-like invocation capabilities (:issue:`18922`).
|
|
||||||
|
|
||||||
Optimizations
|
|
||||||
=============
|
|
||||||
|
|
||||||
Major performance enhancements have been added:
|
|
||||||
|
|
||||||
* The UTF-32 decoder is now 3x to 4x faster.
|
|
||||||
|
|
||||||
* The cost of hash collisions for sets is now reduced. Each hash table
|
|
||||||
probe now checks a series of consecutive, adjacent key/hash pairs before
|
|
||||||
continuing to make random probes through the hash table. This exploits
|
|
||||||
cache locality to make collision resolution less expensive.
|
|
||||||
|
|
||||||
The collision resolution scheme can be described as a hybrid of linear
|
|
||||||
probing and open addressing. The number of additional linear probes
|
|
||||||
defaults to nine. This can be changed at compile-time by defining
|
|
||||||
LINEAR_PROBES to be any value. Set LINEAR_PROBES=0 to turn-off
|
|
||||||
linear probing entirely.
|
|
||||||
|
|
||||||
(Contributed by Raymond Hettinger in :issue:`18771`.)
|
|
||||||
|
|
||||||
* The interpreter starts about 30% faster. A couple of measures lead to the
|
|
||||||
speedup. The interpreter loads fewer modules on startup, e.g. the :mod:`re`,
|
|
||||||
:mod:`collections` and :mod:`locale` modules and their dependencies are no
|
|
||||||
longer imported by default. The marshal module has been improved to load
|
|
||||||
compiled Python code faster.
|
|
||||||
|
|
||||||
(Contributed by Antoine Pitrou, Christian Heimes and Victor Stinner in
|
|
||||||
:issue:`19219`, :issue:`19218`, :issue:`19209`, :issue:`19205` and
|
|
||||||
:issue:`9548`)
|
|
||||||
|
|
||||||
|
|
||||||
CPython Implementation Changes
|
CPython Implementation Changes
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
|
@ -1067,6 +1025,49 @@ Changes to Python's build process and to the C API include:
|
||||||
be made available as a public API for third party use in Python 3.4.
|
be made available as a public API for third party use in Python 3.4.
|
||||||
|
|
||||||
|
|
||||||
|
Other improvements
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Tab-completion is now enabled by default in the interactive interpreter.
|
||||||
|
(Contributed by Antoine Pitrou and Éric Araujo in :issue:`5845`.)
|
||||||
|
|
||||||
|
* Invoking the Python interpreter with ``--version`` now outputs the version to
|
||||||
|
standard output instead of standard error (:issue:`18338`). Similar changes
|
||||||
|
were made to :mod:`argparse` (:issue:`18920`) and other modules that have
|
||||||
|
script-like invocation capabilities (:issue:`18922`).
|
||||||
|
|
||||||
|
|
||||||
|
Optimizations
|
||||||
|
=============
|
||||||
|
|
||||||
|
Major performance enhancements have been added:
|
||||||
|
|
||||||
|
* The UTF-32 decoder is now 3x to 4x faster.
|
||||||
|
|
||||||
|
* The cost of hash collisions for sets is now reduced. Each hash table
|
||||||
|
probe now checks a series of consecutive, adjacent key/hash pairs before
|
||||||
|
continuing to make random probes through the hash table. This exploits
|
||||||
|
cache locality to make collision resolution less expensive.
|
||||||
|
|
||||||
|
The collision resolution scheme can be described as a hybrid of linear
|
||||||
|
probing and open addressing. The number of additional linear probes
|
||||||
|
defaults to nine. This can be changed at compile-time by defining
|
||||||
|
LINEAR_PROBES to be any value. Set LINEAR_PROBES=0 to turn-off
|
||||||
|
linear probing entirely.
|
||||||
|
|
||||||
|
(Contributed by Raymond Hettinger in :issue:`18771`.)
|
||||||
|
|
||||||
|
* The interpreter starts about 30% faster. A couple of measures lead to the
|
||||||
|
speedup. The interpreter loads fewer modules on startup, e.g. the :mod:`re`,
|
||||||
|
:mod:`collections` and :mod:`locale` modules and their dependencies are no
|
||||||
|
longer imported by default. The marshal module has been improved to load
|
||||||
|
compiled Python code faster.
|
||||||
|
|
||||||
|
(Contributed by Antoine Pitrou, Christian Heimes and Victor Stinner in
|
||||||
|
:issue:`19219`, :issue:`19218`, :issue:`19209`, :issue:`19205` and
|
||||||
|
:issue:`9548`)
|
||||||
|
|
||||||
|
|
||||||
Deprecated
|
Deprecated
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue