【问题标题】:How do I get inclusive sample that aggregates children?如何获得聚合儿童的包容性样本?
【发布时间】:2018-12-24 00:01:45
【问题描述】:

在 VS 2015 中,我运行了 CPU 使用情况配置文件,我看到一个函数 (FunctionA) 包含 10% 的样本。这个函数是从其他几个函数调用的(ParentFunctions 1,2&3)。

当我查看 3 个父函数的包含样本时,它们组合的包含样本远小于子函数 B 的 IS!

我如何知道哪个 Parent 导致的使用最多?我习惯于使用以前的分析器,其中父级“CPU 时间”是其子级的聚合。为什么 Inclusive Samples 不能这样工作?我怎样才能切换到给我实际时间的东西?或者,我能分辨出哪个是顽皮的父母吗?

【问题讨论】:

  • 你试过像ANTS性能分析器这样的东西吗?还是在函数中添加日志记录?
  • 好吧,我原以为 MSDN 自己的分析器应该能够做到这一点。
  • 你确定是这样吗?可能是FunctionAParent functions 1,2, and 3 以外的其他东西调用。如果您可以导出性能报告,也许有人可以帮助您。

标签: c# profiling


【解决方案1】:

令人困惑的是,在 VS2015 中,您必须通过 Debug/Profiler/Start Profiling 菜单,而不是 Analyze 菜单。

不知道为什么……

【讨论】:

    【解决方案2】:

    您有使用配置文件,但人们不知道 Visual Studio 2015 有一个 sampling profiling method

    Visual Studio Profiling Tools 的采样分析方法 以设定的时间间隔中断计算机处理器并收集 函数调用栈。调用堆栈是一种动态结构,用于存储 有关在处理器上执行的功能的信息。

    但请注意要求:

    Visual Studio Ultimate、Visual Studio Premium、Visual Studio 专业

    它还会为您提供包容性示例:

    在执行期间收集的样本总数 目标函数。

    这包括在直接执行期间收集的样本 收集的功能代码和样本 目标函数调用的子函数的执行。

    制作步骤:

    • 在 Visual Studio 中打开解决方案。将配置设置为发布。 (找到工具栏上的“解决方案配置”框,默认设置为“调试”。将其更改为“发布”。)
    • Debug 菜单上,选择Profiler,然后选择Performance Profiler
    • 勾选Performance Wizard选项,然后点击Start
    • 勾选CPU Sampling (recommended)选项并点击Finish

    请注意

    • 完成运行应用程序后,分析数据的摘要视图会出现在 Visual Studio 主窗口中,新会话的图标会出现在性能资源管理器窗口中。

    • 如果您不是所使用计算机的管理员,则应在使用探查器时以管理员身份运行 Visual Studio。 (右键单击 Visual Studio 应用程序图标,然后单击以管理员身份运行。

    使用这个guide for reference

    【讨论】:

    • 您好,恐怕我必须直接使用“CPU 采样”。我正在使用 Community 2015,性能向导导致我蓝屏(已知问题)。使用 CPU 采样时,无法选择“仪器”采样,而且我无法在任何菜单中启动性能资源管理器。
    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    相关资源
    最近更新 更多