性能分析器在多个级别上使性能度量与程序结构相关:加载对象级别、函数级别、源代码行级别以及指令(或 PC)级别。
程序结构的最高级别是加载对象。加载对象包括可执行程序本身,以及由程序使用的任何共享库,例如系统库。加载对象以尖括号内斜体形式的加载对象基名表示,例如,<libc.so>。性能分析器构造了一些人工加载对象,如下表中所描述。
加载对象 | 说明 |
---|---|
<Total> | 所有加载对象的合计,代表程序整体。 |
<Unknown> | 收集无法确定其加载对象名的所有 PC。 |
<DYNAMIC_FUNCTIONS> | 包括除 JavaTM 编译方法以外的所有动态编译函数。 |
<JAVA_CLASSES> | 包括所有解释后的 Java 方法 |
<JAVA_COMPILED_METHODS> | 包括所有动态编译的 Java 方法 |
程序结构的下一级是函数。术语函数包括 C 函数、Fortran 函数和子例程、C++ 函数和方法以及 Java 方法。性能分析器构造两个人工函数:一个是 <Total>,它包括所有函数,另一个是 <Unknown>,它包括无法确定其函数名的所有 PC。函数可以具有别名。C++ 函数可以长形式或短形式显示。函数名也可以代码化或反代码化形式出现。分析器将反代码化 C++ 函数、复制函数、编译器生成的主体函数和轮廓函数的名称。在 [摘要] 标签中给出了函数的完整信息。
程序结构的下一级是源代码行。在 [行] 标签中用函数名、源文件和源文件中的行号来表示源代码行。如果无法获得源代码行信息,则会为 PC 所来自的函数聚集度量,聚集是以函数名和括号中的消息来表示的,该消息给出了源代码行信息无法获得的原因。在 [源] 标签中,显示源代码行本身。
程序结构的最低级别是指令或 PC。在 [PC] 标签中用函数名和函数内的偏移来表示 PC。
性能分析器中的各标签可在同一个标签中显示不同级别的程序结构。例如,[函数] 标签可以显示函数和加载对象,[反汇编] 标签可以显示源代码行和指令。
当在任一标签中选择这些程序结构元素其中之一后,在 [摘要] 标签中显示该元素的度量和其它信息。
另请参见 | |
---|---|
函数标签 行标签 PC 标签 摘要标签 显示和隐藏函数 |