Я использую MemoryCache
в ASP.NET, и он работает хорошо. У меня есть объект, который кэшируется в течение часа, чтобы предотвратить новые извлечения данных из репозитория.
Я могу видеть, как кеширование работает при отладке, но также после развертывания на сервере, после того, как сделан 1-й вызов и объект кэшируется, последующие вызовы происходят примерно в 1/5 случаев.
Однако я замечаю, что каждый вызов нового клиента (все еще в этом часовом окне - фактически, через минуту или две), кажется, имеет 1-й вызов моей службы (который выполняет кеширование) занимает почти столько же времени, сколько и исходный вызов до кэширования данных.
Это заставило меня задуматься: MemoryCache
зависит от сеанса, и каждый новый клиент, выполняющий вызов, хранит свой собственный кеш, или происходит что-то еще, из-за чего первый вызов занимает так много времени даже после знаете, что данные были кэшированы?