【发布时间】:2008-10-30 19:04:53
【问题描述】:
我正在调查我们的一个智能客户端应用程序中的 GDI 泄漏问题。 我正在寻找一种工具(如 tasklist)来获取与进程关联的 GDI 对象。我可以在任务管理器中看到 GDI 对象,但我需要定期在某处捕获它。例如在文本文件中。
【问题讨论】:
标签: windows command-line
我正在调查我们的一个智能客户端应用程序中的 GDI 泄漏问题。 我正在寻找一种工具(如 tasklist)来获取与进程关联的 GDI 对象。我可以在任务管理器中看到 GDI 对象,但我需要定期在某处捕获它。例如在文本文件中。
【问题讨论】:
标签: windows command-line
使用GetGuiResources API 函数编写一个程序来定期记录一个进程使用的 GDI 句柄数应该非常简单。
【讨论】:
完全免费的 Process Explorer (http://www.sysinternals.com) 允许您以图形方式检查这个以及与正在运行的进程相关的无数其他方面。将GDI Objects 添加到要显示的列中,您就可以开始运行了。 GDI Objects 列可以在Select Columns 对话框的Process Memory 选项卡中找到。
注意:微软收购了他们的工具,我相信 Mark Russinovich 现在为微软工作。 Sysinternals 工具通常不需要任何安装,只需将它们复制到方便的地方,如果它们还没有的话,它们应该在您的工具箱中。
【讨论】:
使用来自 NirSoft 的免费工具 GDIView。
他们的描述:
GDIView 是一个独特的工具,它显示每个进程打开的 GDI 句柄(画笔、钢笔、字体、位图和其他)列表。它显示每种类型的 GDI 句柄的总数,以及有关每个句柄的详细信息。 对于需要在其软件中跟踪 GDI 资源泄漏的开发人员来说,此工具非常有用。
您可以将 GDI 计数器列表保存为常规、制表符分隔、逗号分隔和表格文本文件,以及水平或垂直 HTML 文件或 XML 文件。
【讨论】: