我正在调试一个会严重降低系统速度的应用程序。该应用程序从本地硬盘加载大量数据(约 1000 个文件,每个半 MB)。这些文件作为内存映射文件加载,仅在需要时进行映射。这意味着在任何给定时间点,虚拟内存使用量都不会超过 300 MB。
我还使用 sysinternals 中的 handle.exe 检查了句柄计数,发现最多打开了大约 8000 个奇数句柄。卸载数据后,它会下降到 400 左右。每次加载和卸载操作后都没有句柄泄漏。
在 2-3 次加载卸载循环之后,在一次加载期间,系统变得非常慢。我检查了应用程序的虚拟内存使用情况以及此时的句柄数,它完全在限制范围内(VM 大约 460MB 也没有太多碎片,句柄数 3200)。
我想知道应用程序如何使系统响应非常慢?我可以使用哪些其他工具来调试这种情况?
让我更具体一点,当我指的是系统时,整个窗口都在变慢。任务管理器本身需要 2 分钟才能启动,而且通常需要硬重启
最佳答案
整个系统变慢的事实非常烦人,这意味着你不能轻易地附加一个分析器,这也意味着甚至很难停止分析 session 以查看结果(因为你说它需要硬重启)。
在这种情况下,最适合这项工作的工具是 ETW(Windows 事件跟踪),这些工具很棒,会给你正在寻找的确切答案
在这里查看
http://msdn.microsoft.com/en-us/library/cc305210.aspx 和 http://msdn.microsoft.com/en-us/library/cc305221.aspx 和 http://msdn.microsoft.com/en-us/performance/default.aspx
希望这能奏效。 谢谢
关于windows - 什么会导致应用程序和系统变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/696904/