Схемы кэширования для управляемых языков - PullRequest
1 голос
/ 22 августа 2008

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

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

Ответы [ 2 ]

1 голос
/ 22 августа 2008

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

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

1 голос
/ 22 августа 2008

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

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

Да, и GC.Collect () вызывает сбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...