Pregunta

cuál es la mejor manera de rastrear y bajar los identificadores de ventanas GDI. .

Otros consejos

Personalmente, uso IARSN TaskInfo para ver la cantidad de identificadores que utiliza mi programa, GDI incluido . En cuanto a la reducción de la cantidad de identificadores activos, miraría lo que en su aplicación utiliza identificadores.

Cosas como (pero no limitado a):

  • Bolígrafos
  • Mapas de bits
  • Controles (no creo que todos usen controladores)

¿Tiene un problema específico con demasiados identificadores, o tal vez incluso una fuga de identificadores?

No necesitas ninguna herramienta. Simplemente lea la tabla de identificadores GDI con la API win32

Escribí una herramienta para rastrear fugas de recursos hace un tiempo. Está alojado en código de Google . Aunque es una biblioteca nativa, creo que también se puede usar para rastrear fugas en el código .NET.

Espero que ayude.

Para rastrear los identificadores de GDI, sugeriría GDIView de Nirsoft . Es un programa gratuito que puede mostrar cuántos identificadores GDI de cada tipo (lápiz, pincel, mapa de bits, fuente, DC, ...) tiene un proceso.

la forma más fácil de ver el uso actual en la máquina de un usuario final es usar el administrador de tareas y mirar la columna "Manijas GDI"

Cuando sospecho que tengo GDI que maneja las fugas, tiendo a pasar por mi escenario de fugas una vez, forzar una recolección de basura, mirar el administrador de tareas, ejecutar la acción nuevamente con gc y buscar una diferencia. Si encuentro uno, he usado el .Net Profiler (de SciTech) que puede mostrar en detalle qué objeto causa la fuga y por qué no se devuelve

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top