2016-07-05 3 views
1

Я новичок в dapper (по поводу его использования). Мне было интересно, как это работает. Он кэширует некоторые результаты, поэтому быстрее получить их позже. На странице github ничего не говорится о выпуске памяти. Я знаю о производительности этого nuget, но разве нет никакой опасности переполнения памяти или sth? Иногда выделяется кэшированная память?dapper.net освобождение кэшированной памяти

+1

«Он кэширует некоторые результаты, поэтому быстрее получить их позже». - нет, нет; он кэширует результат метапрограммирования для вашего запроса и результатов ** shape **. Он никогда не кэширует фактические результаты. –

ответ

0

Веб-уровень часто достигал 100% -ного процессора из-за объема запросов. С сотнями вызовов в секунду накладные расходы процессора от LINQ to SQL, создающие динамический метод для каждого вызова, накладывают слишком большую нагрузку на веб-серверы.
Для решения этой проблемы Dapper.Net кэширует информацию обо всех запросах. Это всестороннее кэширование помогает генерировать объекты из запросов примерно в два раза быстрее, чем LINQ to SQL. В настоящее время кэширование обрабатывается двумя объектами ConcurrentDictionary, которые никогда не очищаются. В будущем алгоритм кэширования может использовать кеш LRU для уменьшения давления памяти.

+0

https://www.infoq.com/news/2011/04/dapper-released –

+1

Может быть большой в освобождении этих словарей - это в моем списке –

+0

Может быть, но я порекомендую dapper над другими ORM –

Смежные вопросы