Oracle® Solaris Studio 12.4:性能分析器

退出打印视图

更新时间: 2015 年 1 月
 
 

Java 分析查看模式

性能分析器为用 Java 编程语言编写的应用程序提供了三种显示性能数据的查看模式:用户模式、专家模式和计算机模式。缺省情况下,将显示用户模式(前提是数据支持它)。下一节汇总了这三种查看模式的主要差异。

用户查看模式下的 Java 分析数据

用户模式按名称显示已编译的和已解释的 Java 方法,并以其自然形式显示本机方法。在执行过程中,可能会执行特定 Java 方法的许多实例:已解释的版本,也许还有一个或多个已编译的版本。在用户模式中,所有方法会被聚集显示为一个方法。在性能分析器中缺省选择此查看模式。

用户查看模式中 Java 方法的 PC 与该方法中的方法 ID 和字节码索引相对应;本机函数的 PC 与计算机 PC 相对应。Java 线程的调用堆栈可能同时具有 Java PC 和计算机 PC。它没有对应于 Java 内务处理代码(无 Java 表示法)的任何帧。在某些情况下,JVM 软件无法展开 Java 堆栈,将返回单个帧及特殊函数 <no Java callstack recorded>。通常,它占总时间的比例不会超过 5-10%。

在用户模式下的 "Functions"(函数)视图中,会针对所调用的 Java 方法和任何本机方法显示度量。"Callers-Callees"(调用方-被调用方)视图显示用户模式中的调用关系。

Java 方法的源代码对应于 .java 文件(从中编译源代码,每个源代码行上都有度量)中的源代码。任何 Java 方法的反汇编显示为其生成的字节码,以及针对每个字节码的度量和交错的 Java 源代码(如果可用)。

Java 表示法中的时间线仅显示 Java 线程。每个线程的调用堆栈与其 Java 方法一起显示。

当前不支持 Java 表示法中的数据空间分析。

专家查看模式下的 Java 分析数据

专家模式类似于用户模式,只不过在用户模式下禁止的一些 JVM 内部详细信息会在专家模式中公开。在专家模式下,"Timeline"(时间线)显示所有线程。内务处理线程的调用堆栈是本机调用堆栈。

计算机查看模式下的 Java 分析数据

计算机模式显示来自 JVM 软件本身而不是来自 JVM 软件解释的应用程序的函数。该表示法还显示所有已编译方法和本机方法。计算机模式看起来与用传统语言编写的应用程序的计算机模式相同。调用堆栈显示 JVM 帧、本地帧和编译方法帧。一些 JVM 帧表示已解释的 Java、已编译的 Java 和本机代码之间的转换代码。

针对 Java 源代码显示已编译方法的源代码;数据表示所选已编译方法的特定实例。已编译方法的反汇编显示生成的计算机汇编程序代码,而不是 Java 字节码。调用方-被调用方关系显示所有开销帧,以及表示已解释方法、已编译方法和本机方法之间的转换的所有帧。

在计算机查看模式下的 "Timeline"(时间线)中,所有线程、LWP 或 CPU 都显示时间线栏,而其中每项的调用堆栈都是计算机模式的调用堆栈。