如何获得聚合儿童的包容性样本?

Man*_*oon 5 c# profiling

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

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

如何判断哪个父项使用率最高?我习惯使用以前的探查器,其中父"CPU时间"是其子级的聚合.为什么包容性样本不能像这样工作?如何切换到能给我实际时间的东西?或者,是否有其他一些我能够分辨哪个是顽皮的父母?

Bar*_*r J 2

您有使用情况配置文件,但人们不知道 Visual Studio 2015 有一个采样分析方法

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

但请注意要求:

Visual Studio 旗舰版、Visual Studio 高级版、Visual Studio 专业版

它还将为您提供包含的示例:

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

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

其制作步骤:

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

请注意

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

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

使用本指南作为参考