windows - 什么会导致应用程序和系统变慢?

标签 windows performance debugging winapi profiling

我正在调试一个会严重降低系统速度的应用程序。该应用程序从本地硬盘加载大量数据(约 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.aspxhttp://msdn.microsoft.com/en-us/library/cc305221.aspxhttp://msdn.microsoft.com/en-us/performance/default.aspx

希望这能奏效。 谢谢

关于windows - 什么会导致应用程序和系统变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/696904/

相关文章:

android - 将 Android 应用程序分发给 Alpha 测试人员时如何跟踪错误?

java - 如何使用 Visual Studio Code 调试 java dropwizard 应用程序

windows - 将正在运行的 WinStore App 切换到全屏

windows - 您如何找到与 gpedit.msc 中的设置对应的注册表值?

performance - VBA:建立无重复表的有效方法

performance - 为什么 Haskell (GHC) 这么快?

python - 在 Windows 8.1 上安装 Boost Python,正确设置工具链

windows - 第一次开发简单的 Windows 应用程序需要什么 IDE?

mysql - 如何在 Scala 中生成大量唯一的随机字符串

ios - 如何使用 self 和 enum 在 Swift 中设置条件断点的条件?