跟踪和降低 GD 手柄的最佳方法是什么?
跟踪和降低 GDI 窗口句柄的最佳方法是什么? 。
what is the best way to track and lower GDI windows handles . .
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
跟踪和降低 GDI 窗口句柄的最佳方法是什么? 。
what is the best way to track and lower GDI windows handles . .
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
两个值得一读的链接...
资源泄漏:检测、定位和修复泄漏的 GDI代码
GDI 资源泄漏
Two links worth reading...
Resource Leaks: Detecting, Locating, and Repairing Your Leaky GDI Code
GDI Resource Leaks
就我个人而言,我使用 IARSN TaskInfo 来查看我的程序使用的句柄数量,包括 GDI。 至于减少活动句柄的数量,那么我会看看您的应用程序中哪些内容正在使用句柄。
诸如(但不限于)之类的东西:
您是否遇到句柄太多的特定问题,甚至可能是句柄泄漏?
Personally I use IARSN TaskInfo to see the number of handles my program uses, GDI included. As for lowering the number of active handles, then I would look at what in your application is using handles.
Things like (but not limited to):
Do you have a specific problem with too many handles, or perhaps even a handle leak?
你不需要任何工具。
只需使用 win32 api 读取 GDI 句柄表
You don't need any tool.
Just read GDI handle table with win32 api
我不久前写了一个工具来追踪资源泄漏。 它托管在 Google 代码上。 尽管它是一个本机库,但我相信它也可以用于追踪 .NET 代码中的泄漏。
希望能帮助到你。
I wrote a tool to track down resource leaks awhile ago. It is hosted on google code. Although it is a native library, I believe it can be used to track down leaks in .NET code as well.
Hope it helps.
要跟踪 GDI 句柄,我建议使用 Nirsoft 的 GDIView。 它是一个免费软件,可以显示每种类型(笔、画笔、位图、字体、DC...)有多少个进程的 GDI 句柄。
To track the GDI handles I would suggest GDIView from Nirsoft. It is a freeware which can display how many GDI handles from each type (Pen, Brush, Bitmap, Font, DC, ...) has a process.
查看最终用户计算机上当前使用情况的最简单方法是使用任务管理器并查看“GDI 句柄”列当
我怀疑我有 GDI 句柄泄漏时,我倾向于运行一次泄漏场景,强制进行垃圾收集,查看任务管理器,使用 gc 再次运行该操作并检查是否有差异。 如果我找到一个,我会使用 .Net Profiler(来自 SciTech),它可以详细显示哪个对象导致泄漏以及为什么不将其返还
the easiest way to see the current usage on an end user's machine is to use task manager and look at the column "GDI Handles"
When I suspect I have GDI handle leaks I tend to run through my leak scenario once, force a garbage collection, look at task manager, run the action again with gc and check for a difference. If I find one I have used the .Net Profiler (from SciTech) which can show in detail which object causes the leak and why it is not handed back