![运行实时程序时突然死机是什么原因造成的?](https://linux22.com/image/1311283/%E8%BF%90%E8%A1%8C%E5%AE%9E%E6%97%B6%E7%A8%8B%E5%BA%8F%E6%97%B6%E7%AA%81%E7%84%B6%E6%AD%BB%E6%9C%BA%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E9%80%A0%E6%88%90%E7%9A%84%EF%BC%9F.png)
因此,我运行了一个高密集度 (CPU/GPU) 实时程序。在正常执行期间,突然一切都冻结了 1-4 秒。我在后台打开了“进程资源管理器”,以帮助获得洞察力并可能识别某些东西。这是我按时间对齐 CPU/GPU 图表时的样子:
请注意 CPU/GPU 中的 4 次明显下降。您可以看到 CPU/GPU 使用率从某种正值下降到几乎为零。图表中的这些下降与实时程序突然冻结时一致。
我如何找到导致这些突然下降的原因?
注意:当您将鼠标放在图表上时,它会告诉您光标所在位置的时间,精确到秒。也许这个鼠标悬停功能可以在某种程度上有所帮助(例如,如果您每 100 毫秒记录一次所有进程会怎样)。
编辑:
实时程序是一个视频游戏,因此我无法在视频游戏运行时观看某种仪表。我需要一个解决方案,让您以某种方式回顾过去,看看速度变慢时发生了什么。
编辑:
RE - 记录数据与使用实时监视器:Windows 性能记录器出于某种原因没有记录我期望它记录的内容。所以我改用“perfmon”,然后打开它的“资源监视器”。
RE - 设置它以便我可以查看实时监视器:在视频游戏中我将其设置为观看,然后将视频游戏置于“窗口”模式,以便我可以查看资源监视器的实时显示。
现在我可以获得半实时(每秒仅一次...如何获得每秒多次?)我开始查看各种实时数据读数。
找出原因:我注意到高磁盘 IO 和低 CPU 使用率之间存在很强的相关性(游戏内冻结也体现了这一点)。如何使用资源监视器来找出是谁在执行所有这些有问题的磁盘 IO?
答案1
我首先要看的是内存使用情况和磁盘 I/O。
尝试禁用后台程序,如防病毒/反恶意软件程序、任何更新程序(如 Windows Update)等。执行干净启动是查看是否有任何第三方服务或程序导致此问题的最佳方法。
您还应该监视内存——如果内存不足,Windows 可能会在后台分页内存。
您是否注意到这种情况在某些时候发生 - 例如,当您切换武器或播放新声音时?这可能是因为游戏资源已从内存中交换出来或尚未加载,游戏必须从磁盘加载资源。根据游戏的不同,您可能能够降低某些设置以降低游戏内资源的质量、数量或种类。