IDE 中的分析工具
Oracle Solaris Studio IDE 提供的交互式图形分析工具可用于检查在 IDE 内部运行的项目的性能。分析工具使用 Oracle Solaris Studio 实用程序和操作系统实用程序来收集数据。
可通过 "Profile Project"(分析项目)按钮
使用分析工具。
Monitor Project(监视项目)
提供一些图形,可籍此了解程序的资源使用情况摘要。
Memory Access Errors(内存访问错误)
分析运行中的程序以检测内存访问错误和内存泄漏。
Data Races and Deadlocks Detection(数据争用和死锁检测)
分析运行中的程序以检测线程间实际和潜在的数据争用和死锁。
在分析项目并选择监视项目时,将打开 "Run Monitor"(运行监视器)窗口以显示低影响工具的 CPU 使用情况、内存使用情况和线程使用情况的输出。
下图显示使用运行监视器工具的 IDE。
用于执行更详细分析的其他工具对系统和应用程序性能的影响较大,因此运行监视器项目时系统不会自动运行这些工具。高级工具与 "Run Monitor"(运行监视器)工具关联,可通过单击按钮轻松启动以查看 "Hot Spots"(热点)、"Memory Leaks"(内存泄漏)和 "Sync Problems"(同步问题)。
"Data Races and Deadlocks Detection"(数据争用和死锁检测)工具使用的底层技术与线程分析器相同,稍后将在本文档中介绍。该工具将分析添加到线程程序中,然后在程序运行时分析程序,以检测线程中实际和潜在的数据争用和死锁。要启动该工具,请单击 "Profile Project"(分析项目)按钮,选择 "Data Races and/or Deadlocks"(数据争用和/或死锁),指定用于数据收集的选项,然后单击 "Start"(启动)。
下图显示在检测到数据争用之后的 "Data Races and Deadlocks Detection"(数据争用和死锁检测)工具。
如果在 "Data Race Detection"(数据争用检测)窗口中单击 "details"(详细信息)链接,将打开 "Thread Details"(线程详细信息)窗口以显示发生数据争用的位置。您可以在 "Thread Details"(线程详细信息)窗口中双击线程,以打开发生问题的源文件并转到受影响的代码行。
"Memory Access Error"(内存访问错误)工具使用的底层技术与先前介绍的 discover 相同。该工具会检测程序,然后在程序运行时执行分析以检测内存访问错误和内存泄漏。要启动该工具,请单击 "Profile Project"(分析项目)按钮,选择 "Memory Access Error"(内存访问错误),指定用于数据收集的选项,然后单击 "Start"(启动)。内存访问错误类型将显示在 "Memory Analysis"(内存分析)窗口中。单击某一错误类型时,该类型的错误将显示在 "Memory Analysis Tool"(内存分析工具)窗口中,在其中可查看每个错误的调用堆栈。
下图显示在检测到内存访问错误之后的 "Memory Access Error"(内存访问错误)工具。
有关如何使用分析工具的信息,请参见 IDE 集成帮助,访问方法为在 IDE 中按 F1 键或通过 "Help"(帮助)菜单。在 "Help"(帮助)的 "Contents"(内容)标签中参见 "Profiling C/C++/Fortran Applications"(分析 C/C++/Fortran 应用程序)、"Detecting Data Races and Deadlocks"(检测数据争用和死锁)和 "Finding Memory Access Errors in Your Project"(在项目中查找内存访问错误)。