Каков наилучший способ отследить и опустить ручки GD? - PullRequest
3 голосов
/ 25 ноября 2008

Как лучше всего отслеживать и опускать дескрипторы окон GDI. ,

Ответы [ 6 ]

5 голосов
/ 01 декабря 2008
2 голосов
/ 25 ноября 2008

Лично я использую IARSN TaskInfo , чтобы увидеть количество дескрипторов, используемых моей программой, включая GDI. Что касается уменьшения количества активных дескрипторов, то я бы посмотрел, что в вашем приложении использует дескрипторы.

Такие вещи, как (но не ограничиваясь):

  • Ручка
  • Bitmaps
  • Элементы управления (я не думаю, что все они используют ручки)

У вас есть особая проблема со слишком большим количеством ручек или, возможно, даже утечка ручки?

1 голос
/ 08 декабря 2011

Для отслеживания дескрипторов GDI я бы предложил GDIView от Nirsoft . Это бесплатная программа, которая может отображать, сколько дескрипторов GDI из каждого типа (Pen, Brush, Bitmap, Font, DC, ...) имеет процесс.

1 голос
/ 18 декабря 2008

Я недавно написал инструмент для отслеживания утечек ресурсов. Он размещен на Google Code . Хотя это нативная библиотека, я считаю, что она может быть использована для отслеживания утечек в коде .NET

Надеюсь, это поможет.

1 голос
/ 26 ноября 2008

Вам не нужен инструмент. Просто прочитайте таблицу дескрипторов GDI с win32 api

0 голосов
/ 25 ноября 2008

Самый простой способ увидеть текущее использование на компьютере конечного пользователя - это использовать диспетчер задач и посмотреть на столбец «Ручки GDI»

Когда я подозреваю, что у меня есть утечки GDI-обработчика, я склонен один раз пробежаться по сценарию утечки, вызвать сборку мусора, посмотреть диспетчер задач, снова запустить действие с помощью gc и проверить разницу. Если я найду один, я использовал .Net Profiler (от SciTech), который может детально показать, какой объект вызывает утечку и почему он не возвращается

...