我工作的机器最近从 Windows 7 更新到了 Windows 10,它变得非常慢。IT 部门在升级后安装了一系列用于安全和保护的新工具,但他们说问题不在于他们的工具。我一直在试图弄清楚发生了什么。我不是唯一遇到此问题的工程师,几乎所有 Windows 10 用户都遇到此问题。
我开始使用API Monitor监控一些已安装的程序,我注意到任何与磁盘 I/O 相关的系统调用都需要很长时间才能返回。我捕获应用程序的运行,然后解析摘要并尝试找到最热门的 API 调用。
我监控了我自己正在开发的程序,以下 API 调用占用了总时间的 70% 左右:
_wopen
CreateFileA
fgets
ReadFile
我认为这可能是与磁盘相关的问题,但在安全模式下,一切都按预期工作并且感觉很活泼。我在安全模式下测试了同一个应用程序,上面的 API 调用仍然是最热门的调用,但它们只占总运行时间的 5%。这让我相信问题不是磁盘,而是我机器上安装的其他一些服务,这些服务监视所有与磁盘 I/O 相关的 API 调用并使我的机器变慢。但是我不知道哪个应用程序干扰了 API 调用。
如何找出特定 API 调用花费如此多时间的原因?我可以进入 Windows 内核并调试此问题吗?
我希望这是这篇文章的正确位置。