Windows句柄泄漏是导致系统资源耗尽和性能问题的常见原因之一。排查句柄泄漏通常需要结合多种工具和方法,以下是一些常见的排查步骤和工具:
-
使用Windows资源监视器:
- 打开“任务管理器”,点击“性能”选项卡,然后选择“打开资源监视器”。
- 切换到“句柄”选项卡,查看哪个进程句柄数异常增长,以及句柄的类型和目标。
- 观察随时间变化的趋势,确定是否真的存在泄漏。
-
使用Process Explorer:
- 这是Sysinternals提供的一个强大的进程查看工具,可以详细查看每个进程打开的句柄信息。
- 使用它找到句柄数异常的进程,查看句柄的类型、目标和源代码行,有助于定位问题所在。
-
使用Windbg调试工具:
- 运行Windbg并附加到疑似泄漏的进程。
- 使用
!htrace -enable
命令开启句柄追踪。 - 执行
!htrace -snapshot
命令记录当前句柄状态的快照。 - 让程序继续运行一段时间后,再次执行
!htrace -diff
来比较句柄状态,找出新增的句柄及其来源。 - 结合<