Каков наилучший способ отслеживать и опускать дескрипторы GD?

StackOverflow https://stackoverflow.com/questions/318154

  •  11-07-2019
  •  | 
  •  

Вопрос

каков наилучший способ отслеживать и опускать дескрипторы GDI Windows?.

Это было полезно?

Другие советы

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top