句柄泄漏是一种资源泄漏,是指应用程序过度消耗有限的计算资源(如内存)的情况。当应用程序打开"句柄"(对系统资源的特殊引用类型)时,会发生句柄泄漏,当不再需要该句柄时无法关闭它。它们有可能降低性能,导致应用程序或系统崩溃...
句柄泄漏是一种资源泄漏,是指应用程序过度消耗有限的计算资源(如内存)的情况。当应用程序打开"句柄"(对系统资源的特殊引用类型)时,会发生句柄泄漏,当不再需要该句柄时无法关闭它。它们有可能降低性能,导致应用程序或系统崩溃,它可能是软件程序中主要错误或草率编码的症状。程序员可以使用许多故障排除工具来帮助他们处理泄漏。

句柄泄漏是一种资源可能导致计算机系统崩溃的耗尽问题。
在计算机编程中,句柄是指引用系统资源的结构,例如磁盘上的一块内存或一个文件。句柄在系统资源和应用程序之间提供了一个抽象层,通常由计算机的操作系统通过一个"句柄表"来管理,该表将每个句柄与一个资源相匹配。程序员可以使用一个句柄来引用一个窗口,然后由操作系统。
性能良好的应用程序将释放不再需要的句柄,释放资源并确保操作系统不会管理未使用的资源。编程错误、软件错误,软件之间的不兼容会导致程序保留不再需要的句柄。当应用程序继续运行时,可能会积累大量不需要的句柄。这称为句柄泄漏。
句柄泄漏与其他类型的资源泄漏一样,会导致性能低下、系统不稳定,或者在极端情况下,电脑崩溃这是因为句柄消耗有限的资源,如系统内存,如果应用程序在不关闭句柄的情况下生成了过多的句柄,这些资源就会耗尽。句柄泄漏引发问题的确切阈值取决于计算机的操作系统、可用内存量,还有其他因素。如果有几十个把手打开,用户可能不会注意到,如果句柄泄漏超过一万个,则表明应用程序的代码中存在严重的错误。
程序员需要特别注意句柄泄漏,因为它们有可能导致问题。诊断句柄泄漏的最基本方法是观察句柄数,当应用程序运行时,进程或应用程序当前打开的句柄数。Windows®任务管理器可以显示此信息,Windows®和其他操作系统的第三方实用程序在识别和跟踪泄漏句柄时也可能很有用。