【问题标题】:Why is VS 2015 stopping diagnostics session is taking forever?为什么 VS 2015 停止诊断会话要花很长时间?
【发布时间】:2019-01-07 22:38:05
【问题描述】:

我正在尝试使用仅激活“时间线”的性能分析器来分析 WPF 项目(WPF、.NET 4.6.1、EF 6、Moq.,在具有 W10 64 位的 i5 机器上)。

问题是在停止程序时,我卡在“报告.....诊断会话”选项卡中,并显示“Microsoft Visual Studio 正在停止您的诊断会话”和旋转沙漏的消息。有时它只是超时,有时我最终会收到报告,但要晚 5 到 20 分钟。

有趣的是,等待诊断会话停止的时间包含在报告中。就像收集数据的过程没有收到停止记录的消息一样。

使用 Windows 资源监视器我注意到 VsStandardCollector.exe 将大量数据写入“C:\Users\XXX\AppData\Local\Temp\”中的子文件夹。我上次尝试大约 9 GB,总共耗时 10 分钟,而我的应用程序只运行了 30 秒就停止了它。

任何人知道什么可能导致停止会话延迟?

等待期间 CPU 和磁盘使用率非常低 (

【问题讨论】:

  • @DmitrySavy:我正在使用性能分析器来查看哪些 WPF 视觉效果占用了我的 CPU。我不想禁用它,我想使用它。
  • @Daniel Hillebrand,所以您使用 Debug->Performance Profiler... 下的 Application Timeline 工具,对吗?如果是这样,您是否将目标从调试更改为发布模式?还请清理项目文件夹中以前的报告文件,或在删除之前将它们复制到其他文件夹,然后清理并构建您的应用程序,重新配置它。
  • @JackZhai-MSFT 没错,这就是我正在使用的工具。我刚刚又试了一次。在性能分析器中运行我的应用程序 30 秒,将其停止,我仍在等待 VS 停止会话。
  • @Daniel Hillebrand,即使在发布模式下,它仍然需要 5~20 分钟吗?我只是使用默认的 VS 设置(C# General),如果可能的话,你可以重置你的 VS 设置,然后检查结果。如果我分析一个简单的 WPF 应用程序,它还共享警告“Microsoft Visual Studio 正在停止您的诊断会话”,但它只花费几秒钟,一个简单的新 WPF 应用程序怎么样?
  • @Daniel Hillebrand,如果您使用性能分析器,它是在发布模式下使用的,我还建议您禁用“调试时启用诊断工具”,它在您调试应用程序期间以原子方式运行,至少,我们可以确定此工具是否会影响您的分析器工具。也请不要选择 TOOLS->Options 下的“Enable IntelliTrace”,并在项目属性中禁用 Host 进程。

标签: c# wpf debugging visual-studio-2015


【解决方案1】:

最近我了解到PerfView 工具,即使在 Microsoft 内部也用于性能分析。它比 VisualStudio 便宜很多,实际上它是免费的。

因此,您可以使用它来分析 Visual Studio 的性能以回答您的问题,甚至更好地使用它来分析您自己的 WPF 应用程序的性能。

【讨论】:

    【解决方案2】:

    如果您的项目消耗超过 4 GB,标准分析器似乎非常慢,有时会因一些未知的不可见的内部问题而死机。 我设法通过以下步骤完成此操作

    1. 构建发布版本
    2. 在状态暂停的情况下运行 Profiler。
    3. 如果 VS 要求,请授予 VS 为您调试帐户提供更多权限。
    4. 在短时间内激活分析器。
    5. 关闭申请
    6. 等待 10-20 分钟或更长时间以生成报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 2012-01-14
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多