Как MemoryCache узнает, сколько памяти он использует? - PullRequest
5 голосов
/ 15 июля 2011

Предполагается, что класс MemoryCache в .net высвобождает элементы всякий раз, когда объем используемой памяти превышает некоторый предел.

Как он фактически определяет, сколько памяти используют его элементы?

1 Ответ

4 голосов
/ 15 июля 2011

MemoryCache имеет внутренний CacheMemoryMonitor, который периодически спрашивает свои ссылки, насколько они велики. Он использует внутренний тип в mscorlib, называемый SizedReference, который является ссылкой, которая также отслеживает, сколько памяти (приблизительно) использует его цель.

Он также собирает различную статистику от ГХ, чтобы помочь выяснить, должно ли давление памяти вызывать начало процесса выселения.

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