【发布时间】:2014-12-19 16:44:18
【问题描述】:
我正在 Visual Studio 2012 Ultimate 中运行负载测试。负载测试只重复执行一个 MsTest 单元测试。
我想知道我的代码对 GC 造成了多大的压力。我不知道该怎么做。
我首先在负载测试提供的默认列表中查找与内存相关的计数器。默认情况下,负载测试运行将提供以下类别的计数器:
- 总体
- 计算机
- 错误
“计算机”选项扩展为提供多个选项,其中之一是“内存”。当我展开“内存”时,我看不到任何与 GC 相关的内容。
所以现在是时候在默认列表中添加额外的计数器了。
为此,我打开负载测试定义并转到“计数器集”并选择“添加自定义计数器集”。然后我“添加计数器”并选择“.NET CLR 内存”。我请求“所有计数器”和“所有实例”。
然后当我运行负载测试时,我看不到有任何方法可以报告这些新计数器或显示在图表中。不幸的是,“计数器窗格”显示了与我开始时相同的选择列表。正在执行的负载测试没有显示任何使用或监视新添加的计数器的迹象。
我错过了什么?
更新
根据 John O. 的输入,我将“.NET CLR Memory”计数器添加到“Agent”计数器集。这确实允许在“计数器”窗格中访问新计数器并在图表中可见。但是,当我选择“.NET CLR 内存”时,我还可以选择计数器将覆盖哪些“实例”。我不知道该选择哪一个:
- 全球
- 构建通知
- 德文
- devenv #1
- devenv #2
- MSBuild
- MSBuild #1
- MSBuild #2
- SC通知
- TfsComProviderSvr
- TfsComProviderSvr #1
- vstest.discoveryengine.x86
上面的多个实例,例如 devenv #1 和 devenv #2 显然代表了我目前在桌面上打开的三个 Visual Studio 实例。但这仍然没有告诉我应该选择上面的哪个项目以使计数器仅“查看”我的负载测试代码。我选择了“所有实例”单选按钮,但我更想知道我应该选择什么。
【问题讨论】:
-
你可以给场景一个启动延迟,给负载测试一个冷却时间。然后,当测试未运行时,您应该会在开始和结束时看到一段时间。检查列出的所有计数器,看看在测试实际运行时发生了哪些变化。
标签: .net visual-studio load-testing performance-testing