Каков наилучший способ отслеживать и опускать дескрипторы GD?
Вопрос
каков наилучший способ отслеживать и опускать дескрипторы GDI Windows?.
Решение
Две ссылки, которые стоит прочитать ...
Утечки ресурсов: обнаружение, обнаружение и исправление утечек кода GDI р>
Другие советы
Лично я использую IARSN TaskInfo чтобы увидеть количество дескрипторов, используемых моей программой, включите GDI.Что касается уменьшения количества активных дескрипторов, то я бы посмотрел, что в вашем приложении использует дескрипторы.
Такие вещи, как (но не ограничиваясь ими):
- Ручки
- Растровые изображения
- Элементы управления (я не думаю, что все они используют дескрипторы)
У вас есть конкретная проблема со слишком большим количеством ручек или, возможно, даже утечка ручек?
Вам не нужен инструмент. Просто прочитайте таблицу дескрипторов GDI с API Win32
Я недавно написал инструмент для отслеживания утечек ресурсов. Он размещен в коде Google . Хотя это нативная библиотека, я считаю, что она может быть использована для отслеживания утечек в .NET-коде.
Надеюсь, это поможет.
Чтобы отслеживать маркеры GDI, я бы предложил GDIView от Nirsoft . Это бесплатная программа, которая может отображать, сколько дескрипторов GDI из каждого типа (Pen, Brush, Bitmap, Font, DC, ...) имеет процесс.
Самый простой способ увидеть текущее использование на компьютере конечного пользователя - это использовать диспетчер задач и просмотреть столбец «Ручки GDI»
Когда я подозреваю, что у меня есть утечки GDI-обработчика, я склонен один раз пробежаться по сценарию утечки, вызвать сборку мусора, посмотреть на диспетчер задач, снова запустить действие с помощью gc и проверить разницу. Если я найду один, я использовал .Net Profiler (от SciTech), который может подробно показать, какой объект вызывает утечку и почему он не возвращается