ASP.NET Core MemoryCache GetOrCreateAsync накладные расходы на асинхронность и ожиданиеC#

Место общения программистов C#
Ответить
Anonymous
 ASP.NET Core MemoryCache GetOrCreateAsync накладные расходы на асинхронность и ожидание

Сообщение Anonymous »

Сначала немного контекста:

В настоящее время мы используем ASP.NET Core MemoryCache MemoryCache Doc

В интерфейсе IMemoryCache есть метод GetOrCreateAsync(...), которому я могу передать фабрическую функцию Func Factory

Поскольку это сигнатура асинхронного метода, мне приходится полностью реализовать async await (иногда стек вызовов примерно из 8 методов), даже если само попадание в кеш является синхронным. В моем сценарии я обращаюсь к кешу примерно 200-2500 раз за запрос. Некоторые записи мне приходится обновлять каждые 60 минут, некоторые просто каждый день.

Теперь вопрос:

На данный момент я понимаю, что .NET Core должен создавать конечный автомат для каждого вызова, хотя я просто обращаюсь к кешу синхронно из-за сигнатуры его метода. Кто-нибудь из вас знает, насколько велики накладные расходы? Имеет ли смысл создать синхронную фабрику (это вызов Web-API) с небольшой блокировкой, чтобы я мог использовать GetOrCreate(...)? Или, может быть, у некоторых из вас есть совершенно иное мнение.

Надеюсь, вы поняли мою больную точку.

Подробнее здесь: https://stackoverflow.com/questions/509 ... -and-await
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»