跟踪和降低 GD 手柄的最佳方法是什么?

发布于 2024-07-09 03:36:05 字数 33 浏览 6 评论 0原文

跟踪和降低 GDI 窗口句柄的最佳方法是什么? 。

what is the best way to track and lower GDI windows handles . .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

娇纵 2024-07-16 03:36:05

就我个人而言,我使用 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):

  • Pens
  • Bitmaps
  • Controls (I don't think all of them uses handles)

Do you have a specific problem with too many handles, or perhaps even a handle leak?

梦亿 2024-07-16 03:36:05

你不需要任何工具。
只需使用 win32 api 读取 GDI 句柄表

You don't need any tool.
Just read GDI handle table with win32 api

慕巷 2024-07-16 03:36:05

我不久前写了一个工具来追踪资源泄漏。 它托管在 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.

放血 2024-07-16 03:36:05

要跟踪 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.

め七分饶幸 2024-07-16 03:36:05

查看最终用户计算机上当前使用情况的最简单方法是使用任务管理器并查看“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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文