【问题标题】:How to collect profiler data from .NET app如何从 .NET 应用程序收集探查器数据
【发布时间】:2013-01-29 16:20:56
【问题描述】:

我有一个 Windows 服务,它定期将 .NET 控制台应用程序作为外部进程启动。

我想在服务运行时从那些外部启动的进程中收集分析数据 (CPU) 并稍后对其进行分析 - 这可能吗?

【问题讨论】:

    标签: .net profiling


    【解决方案1】:

    是的,这是可能的。一种选择是使用PerfView 来收集系统跟踪。我假设您控制启动控制台应用程序,因此您可以修改启动以在启动时捕获跟踪。

    您可以配置 PerfView 以捕获各种详细信息,以帮助您排除正在发生的事情。如果您尚未将 ETW 添加到您的应用程序中,我建议您也使用take a look at that,因为它可以帮助您放大您的应用程序正在做什么以及需要多长时间。

    【讨论】:

    • 谢谢,看起来很有希望。我几乎没有 .NET 经验 - 我是否需要在外部进程的代码中添加任何内容以使它们发出 ETW 日志,以便 PerfView 可以分析它们?我真的只对方法调用时间感兴趣。
    • PerfView 可以对调用堆栈进行采样,因此您无需添加任何内容。但是,添加 ETW 事件将使您更容易识别应用程序的哪个部分在任何给定点运行(无需查看调用堆栈)。
    • 好的,谢谢!当我发现它有效时会将答案标记为正确。
    猜你喜欢
    • 2021-03-22
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2014-06-03
    • 2012-03-12
    • 1970-01-01
    相关资源
    最近更新 更多