forked-synapse/synapse/util/caches
Erik Johnston f7ddfe17a3
Speed up @cachedList (#13591)
This speeds things up by ~2x.

The vast majority of the time is now spent in `LruCache` moving things around the linked lists.

We do this via two things:
1. Don't create a deferred per-key during bulk set operations in `DeferredCache`. Instead, only create them if a subsequent caller asks for the key.
2. Add a bulk lookup API to `DeferredCache` rather than use a loop.
2022-08-23 14:53:27 +00:00
..
__init__.py Add more type hints to the main state store. (#12267) 2022-03-31 13:38:09 -04:00
cached_call.py Add missing type hints to synapse.logging.context (#11556) 2021-12-14 17:35:28 +00:00
deferred_cache.py Speed up @cachedList (#13591) 2022-08-23 14:53:27 +00:00
descriptors.py Speed up @cachedList (#13591) 2022-08-23 14:53:27 +00:00
dictionary_cache.py Make DictionaryCache have better expiry properties (#13292) 2022-07-21 17:13:44 +01:00
expiringcache.py Track cache invalidations (#12000) 2022-02-15 14:31:04 +00:00
lrucache.py Optimise async get event lookups (#13435) 2022-08-04 15:49:55 +01:00
response_cache.py Improve opentracing support for ResponseCache (#11607) 2021-12-20 18:12:08 +00:00
stream_change_cache.py More types for synapse.util, part 1 (#10888) 2021-10-06 11:20:49 +01:00
treecache.py Speed up @cachedList (#13591) 2022-08-23 14:53:27 +00:00
ttlcache.py Remove unused # type: ignores (#12531) 2022-04-27 14:03:44 +01:00