Oracle Solaris Studio 12.2:性能分析器

性能分析工具

本手册介绍了收集器和性能分析器这一对工具,您可以使用它们来收集和分析应用程序的性能数据。该手册还介绍了 er_print 实用程序,一种用于以文本格式显示和分析所收集性能数据的命令行工具。分析器和 er_print 实用程序显示的数据大体相同,但使用不同的用户界面。

称为 Spot 的附加 Oracle Solaris Studio 工具可用于生成关于应用程序的性能报告。此工具是对性能分析器的补充。有关更多信息,请参见 spot(1) 手册页。

收集器和性能分析器设计旨在供任何软件开发者使用,即使性能调节并非开发者的主要职责。与常用的分析工具 profgprof 相比,这些工具提供了更加灵活、详细和准确的分析,并且不会产生 gprof 中的归属误差。

收集器和性能分析器工具有助于回答以下各种问题:

收集器工具

收集器工具使用名为分析 (profiling) 的统计方法,并通过跟踪函数调用来收集性能数据。这些数据可能包括调用栈、微观状态计数信息(仅在 Solaris 平台上)、线程同步延迟数据、硬件计数器溢出数据、消息传递接口 (Message Passing Interface, MPI) 函数调用数据、内存分配数据以及操作系统和进程的摘要信息。收集器可以收集 C、C++ 和 Fortran 程序的各种数据,也可以收集用 Java 编程语言编写的应用程序的分析数据。此外还可以收集动态生成的函数及子孙进程的数据。有关收集的数据的信息,请参见第 2 章;有关收集器的详细信息,请参见第 3 章。可以通过性能分析器 GUI、dbx 命令行工具以及使用 collect 命令运行收集器。

性能分析器工具

性能分析器工具显示收集器记录的数据,以便于您检查这些信息。性能分析器处理数据并显示程序、函数、源代码行和指令级别的各种性能度量。这些度量分为五组:

性能分析器时间线工具还可以图形形式将原始数据显示为时间函数曲线。

有关性能分析器的详细信息,请参见第 4 章以及性能分析器中的联机帮助。

第 5 章介绍如何使用 er_print 命令行界面来分析收集器收集的数据。

第 6 章讨论一些与了解性能分析器及其数据有关的主题,包括:数据收集的工作原理、解释性能度量、调用堆栈和程序执行,以及带注释的代码列表。可以使用 er_src 实用程序来查看包含编译器注释但不包含性能数据的带注释源代码列表和反汇编代码列表(有关更多信息,请参见第 7 章)。

第 7 章介绍如何了解带注释的源代码和反汇编代码,提供了有关性能分析器显示的不同类型的索引行和编译器注释的解释。

第 8 章介绍如何复制、移动、删除、归档和导出实验。

第 9 章介绍如何在 Solaris 操作系统 (Solaris Operating System, Solaris OS) 运行负载时使用 Oracle Solaris Studio 性能工具分析内核。

er_print 实用程序

er_print 实用程序以纯文本形式显示性能分析器提供的所有显示内容,但时间线显示、MPI 时间线显示和 MPI 图表显示除外。这些显示本身都是图形形式,无法将其表示为文本。