Oracle® Developer Studio 12.5:性能分析器

退出打印视图

更新时间: 2016 年 6 月
 
 

性能分析工具

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

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

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

  • 程序消耗的可用资源有多少?

  • 最消耗资源的是哪些函数或装入对象?

  • 消耗资源的是哪些源代码行和指令?

  • 程序在执行过程中如何出现这种问题?

  • 函数或装入对象消耗的是哪些资源?

收集器工具

收集器工具收集性能数据:

  • 使用称为分析的统计方法,该方法可基于时钟触发器或硬件性能计数器的溢出

  • 通过跟踪线程同步调用、内存分配和取消分配调用、IO 调用以及消息传递接口 (Message Passing Interface, MPI) 调用

  • 作为系统和进程的汇总数据

在 Oracle Solaris 平台上,时钟分析数据包括微状态计数数据。所有记录的分析和跟踪事件包括调用堆栈以及线程和 CPU ID。

收集器可以收集 C、C++ 和 Fortran 程序的各种数据,也可以收集用 Java 编程语言编写的应用程序的分析数据。此外还可以收集动态生成的函数及子孙进程的数据。有关收集的数据的信息,请参见性能数据;有关收集器的详细信息,请参见收集性能数据。通过性能分析器、collect 命令或 dbx collector 命令分析应用程序时,将运行收集器。

性能分析器工具

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

  • 时钟分析度量

  • 硬件计数器分析度量

  • 同步等待跟踪度量

  • I/O 跟踪度量

  • 堆跟踪度量

  • MPI 跟踪度量

  • OpenMP 度量

  • 抽样点

性能分析器的 "Timeline"(时间线)视图可以按图形形式将原始数据显示为时间函数。"Timeline"(时间线)视图将记录的事件和抽样点的图表显示为时间函数。数据显示在水平栏中。

性能分析器还可以显示目标程序的数据空间中结构的性能度量,以及内存子系统的结构组件的性能度量。此数据是硬件计数器度量的扩展。

在任何受支持的体系结构上记录的实验都可以由在相同或任何其他受支持的体系结构上运行的性能分析器显示。例如,可以在应用程序在 Oracle Solaris SPARC 服务器上运行时对其进行分析,然后使用在 Linux 计算机上运行的性能分析器查看生成的实验。

可以在具有 Java 的任何 Oracle Solaris、Linux、Windows 或 Mac OS 系统上安装性能分析器的客户机版本,即远程性能分析器。您可以运行此远程性能分析器,连接到安装了完整 Oracle Developer Studio 产品的服务器,并以远程方式查看实验。有关更多信息,请参见远程使用性能分析器

    性能分析器由 Oracle Developer Studio 分析套件中的其他工具使用:

  • 线程分析器使用它检查线程分析实验。使用单独的命令 tha 启动性能分析器将显示一个专门视图,其中显示实验中的的数据争用和死锁,您可专门生成此视图来检查这些类型的数据。

    Oracle Developer Studio 12.5:线程分析器用户指南介绍了如何使用线程分析器。

  • uncover 代码覆盖实用程序使用性能分析器显示 "Functions"(函数)、"Source"(源)、"Disassembly"(反汇编)和 "Inst-Freq"(指令频率)数据视图中的覆盖数据。有关更多信息,请参见Oracle Developer Studio 12.5:Discover 和 Uncover 用户指南

有关使用该工具的详细信息,请参见性能分析器工具以及性能分析器中的 "Help"(帮助)菜单。

er_print 命令行性能分析工具介绍了如何使用 er_print 命令行界面来分析收集器收集的数据。

了解性能分析器及其数据讨论了一些与了解性能分析器及其数据有关的主题,包括:数据收集的工作原理、解释性能度量、调用堆栈和程序执行。

了解带注释的源代码和反汇编数据介绍了如何了解带注释的源代码和反汇编代码,提供了有关性能分析器显示的不同类型的索引行和编译器注释的解释。本章还介绍 er_src 命令行实用程序,可以使用该实用程序来查看包含编译器注释但不包含性能数据的带注释的源代码列表和反汇编代码列表。

操作实验介绍了如何复制、移动和删除实验;将标签添加到实验以及归档和导出实验。

内核分析介绍了如何在 Oracle Solaris 操作系统运行负载时使用 Oracle Developer Studio 性能工具分析内核。


注 -  性能分析器演示代码包含在样例应用程序 Zip 文件中,可从位于 http://www.oracle.com/technetwork/server-storage/solarisstudio 的 Oracle Developer Studio 12.5 网页下载该文件。

有关如何在性能分析器中使用样例代码的信息,请参见Oracle Developer Studio 12.5:性能分析器教程


er_print 实用程序

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