Merge pull request #5409 from crazymerlyn/cache-frozenset-hash

Cache hash value for FrozenSets
This commit is contained in:
Noa
2024-09-23 17:43:55 -05:00
committed by GitHub
2 changed files with 41 additions and 12 deletions

10
Lib/test/test_set.py vendored
View File

@@ -728,15 +728,7 @@ class TestFrozenSet(TestJointOps, unittest.TestCase):
for i in range(len(s)+1):
yield from map(frozenset, itertools.combinations(s, i))
# TODO: RUSTPYTHON
# The original test has:
# for n in range(18):
# Due to general performance overhead, hashing a frozenset takes
# about 50 times longer than in CPython. This test amplifies that
# exponentially, so the best we can do here reasonably is 13.
# Even if the internal hash function did nothing, it would still be
# about 40 times slower than CPython.
for n in range(13):
for n in range(18):
t = 2 ** n
mask = t - 1
for nums in (range, zf_range):