分析工具报告中列的定义
更新:2007 年 11 月
下表包含性能报告视图中提供的值的定义。
列名 |
说明 |
---|---|
应用程序独占时间百分比 |
在此上下文的所有函数实例的应用程序独占时间中,指定数据段的总时间(处理器时钟周期数)或性能计数器值所占的百分比。 |
应用程序包含时间百分比 |
在此上下文的所有函数实例的应用程序非独占时间中,指定数据范围的总时间(处理器时钟周期数)或性能计数器值所占的百分比。 |
已用独占时间百分比 |
在此上下文的所有函数实例的已用独占时间中,指定数据段的总时间(处理器时钟周期数)或性能计数器值所占的百分比。 |
已用包含时间百分比 |
在此上下文的所有函数实例的已用非独占时间中,指定数据段的总时间(处理器时钟周期数)或性能计数器值所占的百分比。 |
应用程序 |
创建进程或线程的应用程序的文件名。 |
应用程序 Etl 文件 |
包含 ETW 数据的文件的位置。 |
应用程序独占时间 |
函数或摘要项的计算时间,此时间不包括包含操作系统事件的性能数据、集合探测的时间和函数调用的子例程的时间。 |
应用程序包含时间 |
函数或摘要项的计算时间,此时间不包括包含操作系统事件的性能数据和集合探测的时间,但包括函数调用的子例程的应用程序时间。 |
平均应用程序独占时间 |
指定数据范围中所有此函数实例的平均应用程序独占时钟时间(处理器时钟周期数)、P6 性能计数器值或用户定义计数器值。 |
平均应用程序包含时间 |
指定数据范围中所有函数实例的平均应用程序包含时钟时间(处理器时钟周期数)、P6 性能计数器值或用户定义计数器值。 |
平均已用独占时间 |
指定数据范围中所有函数实例的平均已用独占时钟时间(处理器时钟周期数)、P6 性能计数器值或用户定义计数器值。 |
平均已用包含时间 |
指定数据范围中所有函数实例的平均已用包含时钟时间(处理器时钟周期数)、P6 性能计数器值或用户定义计数器值。 |
基址 |
所加载模块的内存地址。 |
调用深度 |
调用关系树的深度。 |
时钟频率 |
处理器的时钟速度。 |
命令行 |
用于创建性能报告的命令。 |
计数器 1 - 16 |
检测期间,可以从多个不同计数器收集数据。默认情况下,仅使用 TimeStamp 计数器。 |
CPU ID |
CPU 制造商和类型信息。 |
创建时间 |
这是创建 .vsp 文件的日期/时间。 |
不正常关机 |
表示探查器突然退出。 |
已用独占时间 |
函数或摘要项的计算时间,此时间不包括集合探测的时间以及函数调用的子例程的已用时间。 |
已用包含时间 |
函数或摘要项的计算时间,此时间包括函数调用的子例程的间隔,但不包括集合探测的时间。 |
事件操作 |
发生的事件操作的类型。其事件操作可为进入或退出。它仅显示在调用关系树报告中。 |
事件类型 |
事件操作等事件类型仅显示在调用关系树报告中。下面的列表解释不同的事件类型: L - 加载模快 M – 标记 E – 结尾 Explicit – 指显式接受函数出口。 Implicit - 指因为意外而导致函数退出。 另外,如果启用了 ETW 事件,则事件类型中也会列出它们。 |
独占分配 |
一个函数中的分配,其中不包括该函数调用的子例程中的所有其他分配。 |
独占分配百分比 |
([一个函数中除了其调用的子例程中的所有其他分配的分配]/[分析期间发生的独占分配的总数])* 100 |
独占分配字节数 |
一个函数中分配的字节数,其中不包括该函数调用的子例程中的所有其他字节分配。 |
独占字节百分比 |
(一个函数中分配的字节数/总字节数)* 100 |
独占百分比 |
([函数的独占样本]/[分析期间的总独占样本])* 100 |
独占样本数 |
为函数收集的性能数据样本的总数,其中不包括该函数调用的其他函数的性能数据。 |
独占转换次数 |
在此函数(不包括此函数调用的函数)的所有实例中发生转换(操作系统)事件的次数。 |
独占转换百分比 |
在数据范围内此函数实例的非独占时间内发生,同时在函数的独占时间内发生的操作系统(转换)事件总数的百分比。 |
最终进程数 |
分析运行结束时处于活动状态的进程数,通常仅在与采样分离时为非零值。 |
最终线程数 |
应用程序终止时,正在运行的活动已分析线程数。 |
函数地址 |
十六进制格式的函数的地址。 |
函数名 |
函数的名称。 |
I/O 缓冲区 |
用于在分析过程中存储数据的缓冲区数。 |
ID |
为进程或线程分配的系统定义的数字标识符。 |
非独占分配 |
一个函数中的分配,其中包括该函数调用的子例程中的所有分配 |
包含分配百分比 |
([一个函数中包含其调用的子例程中的所有分配的分配]/[分析期间发生的包含分配的总数])* 100 |
非独占分配 |
一个函数中的分配,其中包括该函数调用的子例程中的所有分配。 |
包含字节百分比 |
(一个函数及其调用的所有其他子例程中分配的字节数/总字节数)* 100 |
包含分配字节数 |
一个函数中分配的字节数,其中包括该函数调用的子例程中的所有其他字节分配。 |
包含字节百分比 |
(一个函数及其调用的所有其他子例程中分配的字节数/总字节数)* 100 |
非独占百分比 |
([函数的包含样本]/[分析期间的总包含样本])* 100 |
非独占样本数 |
为函数收集的性能数据的总数,其中包括该函数调用的其他函数的性能数据。 |
非独占转换次数 |
在此函数(包括此函数调用的函数)的所有实例中发生操作系统(转换)事件的次数。 |
包含转换百分比 |
调用关系树中此函数的父函数调用的此函数实例的非独占时间内发生的操作系统(转换)事件与数据范围中非独占转换总次数的百分比。 |
指令地址 |
十六进制格式的指令地址。 |
内核 Etl 文件 |
如果收集了 ETW 数据,会使用这些数据创建一个单独的文件,这是包含内核事件的文件的位置。 |
级别 |
调用关系树中的调用深度。 |
行号 |
源文件中函数开始的位置。 |
计算机名 |
用于分析的计算机。 |
标记 |
由用户作为标记插入到代码中以帮助记录性能问题的数据。 |
最大应用程序独占时间 |
调用关系树中父函数调用的所有此函数实例的最大单个应用程序独占时钟时间(处理器时钟周期数)或性能计数器值。 |
最大应用程序包含时间 |
调用关系树中父函数调用的所有此函数实例的最大应用程序包含时钟时间(处理器时钟周期数)或性能计数器值。 |
最大已用独占时间 |
调用关系树中父函数调用的所有此函数实例的最大已用独占时钟时间(处理器时钟周期数)或性能计数器值。 |
最大进程数 |
探查器允许一次分析的最大进程数,超过该最大数将报告错误。可通过注册表项控制该最大数。 |
最大线程数 |
探查器允许一次分析的最大线程数,超过该数量将报告错误。可通过注册表项控制该最大数。 |
最小应用程序独占时间 |
调用关系树中父函数调用的所有此函数实例的最小应用程序独占时钟时间(处理器时钟周期数)或性能计数器值。 |
最小应用程序包含时间 |
调用关系树中父函数调用的所有此函数实例的最小应用程序包含时钟时间(处理器时钟周期数)或性能计数器值。 |
最小已用独占时间 |
调用关系树中父函数调用的所有此函数实例的最小已用独占时钟时间(处理器时钟周期数)或性能计数器值。 |
最小已用包含时间 |
调用关系树中父函数调用的所有此函数实例的最小已用包含时钟时间(处理器时钟周期数)或性能计数器值。 |
模块标识符 |
用于跟踪模块的无符号整数。将根据模块加载到进程中的顺序分配此数字。例如,第一个模块为模块 0,而第二个模块为模块 1,等等。 |
模块名 |
包含函数的模块的名称。 |
模块路径 |
模块的目录位置。 |
模块大小 |
以十六进制表示的模块大小。 |
名称 |
使用 NameProfile API 函数分配给进程或线程的字符串。如果没有为项分配名称,则在项 ID 前预置项类型(进程、线程)。 |
CPU 数 |
用于分析的计算机中的 CPU 总数。 |
调用数 |
在调用关系树中父函数对此函数实例的调用次数。 |
操作系统 |
操作系统版本信息。 |
父函数地址 |
调用另一个函数的父函数在内存中的地址。 |
调用百分比 |
调用关系树中此函数的父函数调用的此函数的实例数与指定数据范围内所有函数的总调用次数的百分比。 |
进程高位 |
同时分析的最大进程数。 |
进程 ID |
进程的数字标识符。 |
进程名 |
进程的名称。 |
报告创建时间 |
创建报告的日期和时间。 |
根节点递归 |
指示此函数是否在此上下文中被直接或间接地递归调用。 |
样本间隔 |
所使用的样本或事件之间的平均时钟周期数。 |
样本(已中止) |
无法遍历应用程序堆栈时所取的样本。 |
样本(应用程序) |
应用程序处于应用程序模式时所取的样本。 |
样本(已损坏) |
由于调用堆栈遍历无法进行到线程起始地址导致的不完整堆栈。 |
样本(内核) |
应用程序处于内核模式时所取的样本。这些是引发产生的。 |
样本(系统开销) |
进行调用堆栈遍历时发生的样本。这些是引发产生的。 |
样本(总数) |
发生的样本总数。 |
方案名 |
默认值为 ProfileRun。可以使用 NameProfile API 在进程中设置。 |
缓冲区大小 |
I/O 缓冲区的大小。请参见“I/O 缓冲区”。 |
源文件 |
.vsp 报告文件的完整路径。 |
源文件名 |
包含此函数的源文件的名称。 |
堆栈指针 |
函数的堆栈指针的值。 |
源字符的开始位置 |
报告代码样本开始处的列号。 |
源字符的结束位置 |
报告代码样本结尾处的列号。 |
源行的开始位置 |
报告代码样本开始处的行号。 |
源行的结束位置 |
报告代码样本结尾处的行号。这基本与“源行开始”相同,不同之处在于在多行语句上采样,例如: y = myFunction(x + 2, y * 3, x / y ) – x; |
线程高位 |
一次分析的最大线程数。 |
线程 ID |
为线程分配的系统定义的数字标识符。 |
线程名 |
使用 NameProfile API 函数分配给进程或线程的字符串。如果没有为项分配名称,则在项 ID 前预置项类型(进程、线程)。 |
时间差 |
发生此事件的时间戳和前一个事件的时间戳之间的差。 |
时间独占探测系统开销 |
在调用关系树中父函数调用的此函数实例的独占时间中,分析探测所用的总时间。 |
时间包含探测系统开销 |
在调用关系树中父函数调用的此函数实例的包含时间中,分析探测所用的总时间。 |
时间戳 |
发生事件的时间。 |
工具名称和完整版本 |
VSPerfReport 的名称和版本。 |
进程总数 |
分析会话生存期内分析的进程总数。 |
线程总数 |
分析过程中创建的线程总数。 |
类型 |
表示调用关系树中行的类型。值: 0 表示根函数 1 表示调用方 2 表示被调用方 例如,如果有以下调用关系树: main->funcA->funcB 则类型列将具有以下行: 0 - main 2 - funcA 0 - funcA 1 - main 2 - funcB 0 - funcB 1 - funcA |
唯一 ID |
标识该函数的十六进制数字。 |
唯一进程 ID |
用于跟踪进程的无符号整数。将根据进程加载的顺序分配此数字。例如,第一个进程为 0,而第二个进程为 1,等等。 |
唯一进程 ID |
用于跟踪进程的无符号整数。 |
VSPerf90.DLL 文件版本 |
数据收集动态链接库的版本,名为 VSPerf90.DLL,它创建了 .vsp 文件。 |