函数详细信息视图

**“函数详细信息视图”**窗口显示以下信息:

  • **“开销分布”**条形图表示所选函数与执行所选函数的调用函数之间的关系,以及所选函数与其调用的函数之间的关系。

  • **“函数性能详细信息”**表,该表显示所指定函数的摘要分析数据。

  • **“函数代码视图”**窗口,该窗口在函数代码可用时显示该代码。

**“函数代码视图”窗口是一个独立的窗格。 默认情况下,这两个窗格沿水平方向拆分,而“函数代码视图”**窗口位于框架的底部。

  • 若要沿垂直方向拆分两个窗格,请单击工具栏上的**“垂直拆分屏幕”**。

  • 若要更改窗格的相对大小,请单击框架之间的阴影边框,并将该边框拖至其他位置。

开销分布条形图

性能指标

在**“性能指标”下拉列表中,可指定视图中显示哪些值。 可用的值取决于在分析数据文件中使用的分析方法。 括号中的名称是“函数性能详细信息”**表中各行的名称。

条形图

调用函数

**“调用函数”**条形图显示调用了所选函数的函数。 调用函数所在块的大小与该调用函数对所选函数的性能总度量值所占的份额成比例。

单击调用函数的名称可使其成为视图中的所选函数。

  • 如果要列出的调用函数太多,则在**“其他”块中收集所占份额最少的函数。 单击“其他”可在“调用方/被调用方视图”**窗口中显示所选函数的所有调用和被调用函数。 有关更多信息,请参见“调用方/被调用方”视图

  • 如果没有任何调用函数或该函数是线程或进程的入口函数,则会显示**“堆栈顶部”**块。

所选函数

所选函数栏显示被调用函数及所选函数中代码对所选函数的性能总度量值所占的份额。 被调用函数所在块的大小与其对所选函数的性能总度量值所占的份额成比例。

单击被调用函数的名称可使其成为视图中的所选函数。

  • **“总计”**值是所选函数的性能指标。

  • **“函数体”**块表示直接执行函数体内代码时产生的性能总度量值的量。

  • 块中列出由所选函数调用的函数。 所选函数块的大小表示所选函数在被调用函数中产生的性能总度量值的量。

  • 如果要列出的调用函数太多,则在**“其他”块中收集所占份额最少的函数。 单击“其他”可在“调用方/被调用方视图”**窗口中显示所选函数的所有调用和被调用函数。 有关更多信息,请参见“调用方/被调用方”视图

  • 如果没有任何被调用函数,则显示**“堆栈底部”**块。

函数性能详细信息

“函数性能详细信息”表提供所选函数的性能指标的摘要数据。 同时显示值和百分比。 在**“性能指标”**列表中指定图表和详细信息表中显示的分析数据。

说明

独占

  • 执行函数体时产生的性能指标的量。

在调用中

  • 所选函数所调用的函数中产生的性能指标的量。

非独占总数

  • “独占”“在调用中”值之和。

函数代码视图

**“函数代码视图”**窗口显示源代码的列表(源代码可用时)。 紧挨着调用其他函数的源代码行是一个有阴影的列,该列包含被调用函数的性能指标。 若要编辑源代码,请单击源代码文件的链接。

开销分布条形图值

采样

下表介绍了“性能指标”列表中使用采样方法收集的分析数据的值。

非独占样本数(收集的样本)

  • 对于调用函数,为此调用函数调用所选函数时收集的样本的数量。

  • 对于函数体,为所选函数执行其自身代码时收集的样本的数量。

  • 对于被调用函数,为被调用函数执行时因所选函数产生调用而收集的样本的数量。

检测

下表介绍了“性能指标”列表中使用检测方法收集的分析数据的值。

已用非独占时间(已用时间)

已用时间包括对操作系统的调用(如上下文切换和输入/输出操作)所用的时间。

  • 对于调用函数,为执行此函数调用的所选函数实例所用的已用时间量。 包括由所选函数调用的函数所用的时间。

  • 对于函数体,为执行所选函数的代码所用的已用时间总量。 不包括被调用函数所用的时间。

  • 对于被调用函数,为执行所选函数调用的函数实例所用的时间量。 总时间包括该函数调用的函数所用的时间。 包括由所选函数调用的函数所用的时间。

应用程序非独占时间(应用程序时间)

应用程序时间不包括对操作系统的调用(如上下文切换和输入/输出操作)所用的时间。

  • 对于调用函数,为执行由该函数调用的所选函数实例所用的应用程序时间量。 包括由所选函数调用的函数所用的时间。

  • 对于函数体,为执行所选函数的代码所用的应用程序时间总量。 不包括被调用函数所用的时间。

  • 对于被调用函数,为执行由所选函数调用的函数实例所用的应用程序时间量。 总时间包括该函数调用的函数所用的时间。

.NET 内存

下表介绍了“性能指标”列表中使用 .NET 内存分析方法收集的分析数据的值。

非独占分配数(分配)

  • 对于调用函数,为由该函数调用的所选函数实例分配的对象数量。 此数量包括由所选函数调用的函数分配的对象。

  • 对于函数体,为所选函数在执行其自身代码时分配的对象数量。 不包括由所选函数调用的函数中分配的对象。

  • 对于被调用函数,为由所选函数调用的函数实例分配的对象数量。 此数量包括由该函数调用的函数分配的对象。

非独占字节数(字节数)

  • 对于调用函数,为由该函数调用的所选函数实例分配的字节数。 此数量包括由所选函数调用的函数分配的字节。

  • 对于函数体,为由所选函数在执行自身代码时分配的字节总数。 不包括由所选函数调用的函数中分配的字节。

  • 对于被调用函数,为由所选函数调用的函数实例分配的字节数。 此数量包括由该函数调用的函数分配的字节。

并发

下表介绍了“性能指标”列表中使用并发方法收集的分析数据的值。

非独占争用数(争用)

  • 对于调用函数,为由该函数调用的所选函数实例中发生的资源争用事件数。 此数量包括由所选函数调用的函数中的争用事件。

  • 对于函数体,为该函数执行自身代码时发生的争用事件总数。 不包括由所选函数调用的函数中发生的争用。

  • 对于“被调用函数”,为所选函数调用的函数实例中发生的争用事件数。 此数量包括该函数调用的函数中发生的争用事件。

非独占阻塞的时间(阻塞时间)

  • 对于调用函数,为该函数调用的所选函数实例的资源争用事件所用的时间。 此时间包括所选函数调用的函数中的阻塞时间。

  • 对于函数体,为该函数执行自身代码时发生的争用事件中所用的总时间。 不包括所选函数调用的函数中发生的争用。

  • 对于被调用函数,为所选函数调用的函数实例的资源争用事件中所用的时间。 此时间包括该函数调用的函数中发生的阻塞时间。