У меня .Net 3.5 SP1 с разработкой в WPF.
Всякий раз, когда я запускаю свое приложение WPF, я вижу, что процесс с именем «PresentationFontCache» появляется в моем списке процессов (в диспетчере задач). Процесс, хотя и выглядит безобидным, на самом деле находится в памяти даже после закрытия приложения WPF. Что это за процесс на самом деле? Что это делает?
Поэтому, когда я пытаюсь проверить использование памяти (многократно выполняя и закрывая приложение), процесс дает ощущение, что некоторая память все еще используется. Кроме того, я заметил, что этот процесс может отвратительно потреблять ресурсы (30% использования ЦП и / или 100 МБ памяти при определенных условиях !!!).
Я обнаружил службу Windows с именем «Windows Presentation Foundation Font Cache 3.0.0.0», которая, вероятно, отвечает за создание этого процесса. Этот сервис утверждает, что он оптимизирует производительность приложений WPF за счет кэширования часто используемых данных шрифтов. Приложения WPF запустят эту службу, если она еще не запущена. Его можно отключить, хотя это снизит производительность приложений WPF.
Но тогда почему служба Windows сама не закрывает процесс после закрытия приложения WPF.
Или же эти службы на самом деле кэшируют информацию о шрифтах, используемую для любых приложений WPF, так что в следующий раз любое из подобных приложений при повторном запуске будет использовать кэш без регенерации шрифтов для приложения? Если это так, разве это не тот тип данных, который нельзя собирать? Не является ли это вероятной причиной утечки памяти?
Пожалуйста, подожди меня.
Thx
Vinit.