Windows XP 似乎资源不足,但有大量可用 RAM 和交换空间

Windows XP 似乎资源不足,但有大量可用 RAM 和交换空间

这个问题困扰了我好几年,到目前为止我还没有找到一个合适的解决办法。

我安装的每一个 XP 系统几乎都会出现这个问题。打开各种程序或系统运行现有程序一段时间后,Windows 似乎资源耗尽了,但没有告诉我。

总是可用 RAM。例如,我刚刚遇到了这种情况,我有超过 1GB 的可用 RAM。没有病毒、间谍软件或其他垃圾 - 这是一个Windows 资源问题但问题是,哪种资源正在枯竭,如何查明原因,如何防止这种情况发生?

有时,这种情况会在运行特定程序后发生 - 例如,今天我同时启动 Photoshop CS4 和 Flash CS4 时就发生了这种情况。我还注意到重新启动 The Bat(Ritlabs 的电子邮件客户端)似乎可以暂时解决这个问题,但同样,这种情况发生在甚至没有安装 The Bat 的机器上。

那么究竟发生了什么? 症状如下:

  • 按下 alt-tab 键不会再调出列表 - 它只是立即跳转到下一个窗口,与 Alt-Esc 的工作方式非常相似,但在这种情况下,这是由于没有足够的资源来调出 alt-tab 菜单

  • 随机程序会随机崩溃,出现随机错误、内存不足错误、系统资源不足、无法执行系统调用等。

  • 随机程序会开始丢失随机部分 - 例如,Firefox 顶部菜单可能会消失、拉出部分选择或完全不再拉出。IE 可能会丢失一些工具栏。某些程序可能无法重绘,或者 UI 原来的位置会变成灰色。

  • Windows 本身从来不会抱怨内存、虚拟内存或者其他东西用完了,但它却用完了某物

我今天能找到并应用修复的唯一线索是这个桌面堆限制。由于时间还不够,我还没有确认修复是否有效。与此同时,大家有什么想法?

答案1

可能是您正在运行的程序中存在句柄泄漏。我的一个程序中有一个 bug,它表现出这些问题,启动新程序时会出现工具栏缺失或不完整、文件->打开对话框不显示、alt-tab 无法正常工作以及奇怪的错误等问题。

在任务管理器中,您可以使用“查看”->“列”菜单来显示句柄以及用户和 gdi 对象的列,它们都使用句柄​​,如果您在那里发现一个具有较高数字的程序,那么它可能是罪魁祸首。

不幸的是,“高数字”到底是多少完全取决于程序。

特别要注意句柄数稳步增加的任何程序,因为这可能表明存在这种泄漏。

答案2

这是因为 Windows 有所谓的“桌面堆”,其中存放着大多数 GUI 对象,包括菜单、图标等。而这个空间非常有限,更重要的是,其大小是固定的。

Q126962:在桌面堆上寻找解决方案并阅读陈瑞文了解更多信息。

答案3

Windows 上的“资源”或“系统资源”一词是指操作系统内部的各种对象(例如窗口句柄)。Windows 限制分配给资源的空间,以便它们无法使用所有系统内存。这就是为什么您有足够的可用内存但资源空间不足的原因。

Mark Russinovich 和 David Solomon(Winternals 和系统内部名声大噪的 Windows 专家写了一本书,详细介绍了 Windows 的核心内容:《Windows Internals》。第四版涵盖了 Windows 2000、XP 和 Server 2003,可单独购买,也可作为 Windows Server 2003 资源工具包的一部分购买。第五版将于 2009 年 6 月发布,将涵盖 Windows Vista 和 Server 2008。这两卷书之一或两卷书可能对您有所帮助,但请注意:这不仅仅是一本周六下午的读物!

答案4

“一个非常可疑的 spoolsv.exe,有​​ 11,456 个句柄”

这是打印作业假脱机程序...您有等待或需要吹走的打印作业吗?

打印机驱动程序损坏?

相关内容