本教程有三个主要目的:
-
提供简单的性能问题示例,并介绍确定问题的方法。
-
用示例说明性能分析器的功能。
-
显示性能分析器提供性能数据以及处理各种代码结构的方法。
本教程使用五个示例程序:
-
示例 1:基本性能分析。此示例说明如何使用时间数据来确定性能问题,显示时间如何归属于函数、源代码行和指令,并显示性能分析器如何处理递归调用、动态加载对象模块和子孙进程。本示例说明了分析器的主显示画面:[函数] 标签、[调用者-被调用者] 标签、[源] 标签、[反汇编] 标签和 [时间线] 标签。示例程序 synprog 用 C 语言编写。
-
示例 2:分析混合 Java/C++ 应用程序的性能。此示例说明分析器如何处理已解释和动态编译的 Java 方法。示例程序
jsynprog
用 Java 编程语言编写,使用 JNI 调用源代码。
-
示例 3:OpenMP 并行化策略。此示例说明使用 OpenMP 指令并行化 Fortran 程序 omptest 的各种方法的效率。
-
示例 4:多线程程序中的锁定策略。此示例说明利用同步延迟数据来对线程中的工作进行调度的各种方法的效率,以及数据管理对缓存性能的影响。示例使用明确多线程化的 C 程序 mttest,即客户机/服务器应用的模型。
-
示例 5:缓存行为和优化。此示例说明访问内存和优化编译器对 Fortran 90 程序 cachetest 执行速度的影响。本示例还说明硬件计数器数据和编译器注释在性能分析中的使用。
在本教程中,您可以将示例程序复制到自己的工作区,然后收集和分析性能数据。有关安装说明参见安装教程。有关数据收集说明、教程说明和注释,请选择下列主题。
基本性能分析
分析混合 Java/C++ 应用程序的性能
OpenMP 并行化策略
多线程程序中的锁定策略
缓存行为和优化
每个主题结尾处的“另请参见”部分包含可跳转到其它主题的链接,这些主题提供有关本教程主题中提及的概念或 GUI 功能信息。
也可以通读《程序性能分析工具》手册中的教程。手册中的教程章节包含分析器输出的屏幕快照和运行程序的说明。如果不想自行收集数据,或者不能使用所需硬件,教程章节还提供了使用性能工具的替换说明。
找到要找的内容了吗?如未找到,请将您的意见通过电子邮件发送至 docfeedback@sun.com。
法律声明