summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/whatsnew/3.4.rst6
-rw-r--r--Misc/NEWS4
2 files changed, 10 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
index 1c30d43..f7d0c26 100644
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -389,6 +389,12 @@ 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 second key/hash pair for each cache line retrieved.
+ This exploits cache locality to make collision resolution less expensive.
+
+ (Contributed by Raymond Hetting in :issue"`18771`.)
+
Build and C API Changes
=======================
diff --git a/Misc/NEWS b/Misc/NEWS
index f5dbfee..df4a09b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,10 @@ Core and Builtins
- Issue #18774: Remove last bits of GNU PTH thread code and thread_pth.h.
+- Issue #18771: Add optimization to set object lookups to reduce the cost
+ of hash collisions. The core idea is to inspect a second key/hash pair
+ for each cache line retrieved.
+
- Issue #16105: When a signal handler fails to write to the file descriptor
registered with ``signal.set_wakeup_fd()``, report an exception instead
of ignoring the error.