Сведения о вопросе

Gentleman

12:55, 10th August, 2020

Теги

Схемы кэширования для управляемых языков

Просмотров: 457   Ответов: 2

Это в основном ориентировано на разработчиков настольных приложений.
Как я могу создать блок кэширования, который хорошо играет с GC?
Как я могу сказать GC, что я только что сделал очистку кэша, и пришло время сделать GC?
Как я могу получить точную меру того, когда пришло время выполнить очистку кэша?

Есть ли какие-либо готовые схемы кэширования, из которых я мог бы заимствовать некоторые идеи?



  Сведения об ответе

crush

18:01, 24th August, 2020

Все, что вам когда-либо нужно будет знать (и затем некоторые):

http://msdn.microsoft.com/en-us/library/ee817645.aspx

О, и GC.Collect() заставляет собраться.


  Сведения об ответе

dump

02:51, 15th August, 2020

Хотя я, очевидно, не могу говорить о специфике вашего приложения, в большинстве случаев вы не должны привязывать свою реализацию кэширования к некоторым предполагаемым ожиданиям того, как будет работать GC. Как упоминает Стью, вызов GC.Collect() принудительно вызовет коллекцию (с перегрузками для определенного поколения), но чаще всего это приведет к худшей производительности, чем просто позволить GC управлять самим собой.

Если вы обнаружите (после выполнения некоторых реальных тестов производительности), что вам нужно взаимодействовать с GC, убедитесь, что вы принимаете во внимание различные типы GC, которые в настоящее время есть у платформы (см. здесь дополнительную информацию).


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться