mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-16 04:33:52 +01:00
Merge pull request #3451 from matrix-org/hawkowl/sorteddict-api
Try to not use as much CPU in the cache
This commit is contained in:
commit
d91efb06cf
2 changed files with 4 additions and 2 deletions
0
changelog.d/3447.misc
Normal file
0
changelog.d/3447.misc
Normal file
|
@ -78,7 +78,8 @@ class StreamChangeCache(object):
|
||||||
not_known_entities = set(entities) - set(self._entity_to_key)
|
not_known_entities = set(entities) - set(self._entity_to_key)
|
||||||
|
|
||||||
result = (
|
result = (
|
||||||
set(self._cache.values()[self._cache.bisect_right(stream_pos) :])
|
{self._cache[k] for k in self._cache.islice(
|
||||||
|
start=self._cache.bisect_right(stream_pos))}
|
||||||
.intersection(entities)
|
.intersection(entities)
|
||||||
.union(not_known_entities)
|
.union(not_known_entities)
|
||||||
)
|
)
|
||||||
|
@ -113,7 +114,8 @@ class StreamChangeCache(object):
|
||||||
assert type(stream_pos) is int
|
assert type(stream_pos) is int
|
||||||
|
|
||||||
if stream_pos >= self._earliest_known_stream_pos:
|
if stream_pos >= self._earliest_known_stream_pos:
|
||||||
return self._cache.values()[self._cache.bisect_right(stream_pos) :]
|
return [self._cache[k] for k in self._cache.islice(
|
||||||
|
start=self._cache.bisect_right(stream_pos))]
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue