【问题标题】:How to find % time spent in GC for a .NET application?如何查找 .NET 应用程序在 GC 中花费的时间百分比?
【发布时间】:2015-06-02 05:48:46
【问题描述】:

我已经尝试找出这个值几个小时了,但无济于事。它开始变得非常令人沮丧。

我看到到处都提到了这个“在 GC 中花费的时间百分比”(例如 https://msdn.microsoft.com/en-us/magazine/cc163528.aspx),但没有提及如何检索它!

我尝试过 Visual Studio 的内存分析器、ANTS(试用版现已过期)、CLR Profiler 和 PerfView。这个值存储在哪里以便我可以读取它?

【问题讨论】:

    标签: c# .net memory garbage-collection


    【解决方案1】:

    它在性能监视器中 (perfmon.exe)

    1. 启动 perfmon 并选择要监控的进程。
    2. 单击绿色大“+”号以添加性能计数器。
    3. 在“添加计数器”对话框中,选择“.NET CLR 内存”
    4. 展开“.NET CLR 内存”下的计数器
    5. 向下滚动并选择“% Time in GC”

    【讨论】:

    • 我没有看到“.NET CLR 内存”。这是截图:i.imgur.com/p2SYwKM.png
    • 另外,它怎么会知道它来自这个应用程序而不是系统范围的?
    • @JohnSmith:奇怪。我的 Windows 8.1 显示“.NET CLR 内存”。我有一张来自 Windows XP 的旧屏幕截图,它还显示“.NET CLR 内存”。见informit.com/guides/content.aspx?g=dotnet&seqNum=245。我不知道为什么它没有出现在您使用的任何版本的 Windows 中。
    • @JohnSmith:当您选择您感兴趣的计数器时,下方的列表框(选定对象的实例:)将显示应用程序。您可以选择所有实例或您感兴趣的单个进程。
    • @JohnSmith:另见stackoverflow.com/questions/1540777/…,这可能是相关的。
    猜你喜欢
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    相关资源
    最近更新 更多