Oracle® Solaris Studio 12.4:IDE 快速入门教程

退出打印视图

更新时间: 2014 年 10 月
 
 

了解内存使用情况

"Memory Usage"(内存使用情况)指示器显示了项目的内存堆在其运行时如何变化。您可以使用该工具来识别内存泄漏,内存泄漏是指程序中不再需要的内存无法释放的点。内存泄漏可能会导致程序中的内存消耗增加。如果某个存在内存泄漏的程序运行足够长的时间,它最终可能会用尽可用内存。

  1. 在 "Run Monitor"(运行监视器)中左右滑动滑块,以查看内存堆如何随时间增加或减少。ProfilingDemo_1 中应该出现四次使用峰值。前两次出现在串行演示期间,第三次出现在并行演示期间,最后一次出现在 Pthread 互斥演示期间。

  2. 单击 "Memory Leaks"(内存泄漏)按钮显示 "Memory Leak Details"(内存泄漏详细信息)窗口。这将显示有关哪些函数呈现内存泄漏的详细信息。出现的表中只会列出产生内存泄漏的函数。如果单击该按钮时程序正在运行,显示的泄漏位置就是单击按钮那一刻存在的位置。随着时间的推移,可能会发生更多泄漏,因此,应单击 "Refresh"(刷新)按钮。如果直到运行结束仍未检测到任何内存泄漏,"Memory Leak Details"(内存泄漏详细信息)选项卡会指示未找到内存泄漏。

  3. 可以更改 "Start"(开始)和 "End"(结束)时间来过滤数据,或使用 "Run Monitor"(运行监视器)窗口中的橙色详细信息滑块(与“了解 CPU 使用情况”一节中相同)。本示例中没有内存泄漏。

    image:“Memory Leak Details“(内存泄漏详细信息)窗口,未检测到问题。
  4. 双击某个函数,将打开相应文件并停在函数中发生内存泄漏的行。源代码编辑器的左边界中将显示内存泄漏度量。

  5. 将鼠标移到度量上以显示详细信息,如同对 CPU 使用情况度量执行的操作一样。

  6. 右键单击表中的度量以过滤表中的数据。此表中数据过滤功能在所有分析工具中均可用。