除了在任务管理器中看到持续的高 CPU 使用率和不断增长的内存使用率,并且不依赖于基于与程序的实际交互(例如,缓慢的界面)的判断之外,还有其他方法可以确定进程是否出现故障(和/或失控)使用 Process Explorer?
例如,我在 Process Explorer 中查看某个进程的线程框。我看到大约 20-30 个“停滞”线程MSVCR100.dll!endthreadex
。有没有办法通过查看线程和调用堆栈来粗略估计某个进程是否出现故障?
答案1
有没有办法通过查看线程和调用堆栈来粗略估计某个进程是否出现故障?
这实际上取决于流程 - 您越熟悉程序及其“正常”资源分配,就越容易识别程序何时出现故障。我说这取决于流程,是因为对于一个应用程序而言“正常”的情况对于另一个应用程序而言可能非常错误。
在您的示例中,“20-30 个停滞线程”可能表示存在问题,也可能不表示 - 这取决于是否是有意为之。
还需要考虑的是应用程序的性能/资源使用情况是否符合您作为用户的标准。如果您查看进程信息并经常看到这些停滞线程,并且这对您作为用户产生了影响,那么您可以决定删除/替换该应用程序,使用性能更好的应用程序。
通常,我们倾向于依赖更多的内存使用率和 CPU 时间来表明某些地方出了问题,因为这些资源更直接地影响其他应用程序的性能。