性能工具
下面这些 应用程序用于软件性能的测量和分析。它们位于/Developer/Applications
目录下。
-
Sampler 用于分析程序运行时的行为和内存分配。顾名思义,Sampler会按一定的时间周期对程序的函数调用栈进行采样,并在采样结束时向您显示调用频率最高的函数或方法。这种信息有助于定位消耗大量CPU时间或进行内存分配的函数或方法。
-
ObjectAlloc 用于跟踪各种程序的内存分配与释放行为。这种历史数据可以显示重复的内存分配行为和总体的分配趋势。对于Objective-C代码,ObjectAlloc在记录
alloc
调用的同时,也记录每个copy
、retain
、release
、autorelease
调用,而且还记录在Core Foundation中与这些方法相对应的函数,以及malloc
(及相关)函数进行的内存分配。 -
MallocDebug 按分配时的调用栈顺序显示程序中当前已分配的内存块。通过这个工具一下子就可以看到您的应用程序消耗多少内存、这些内存是从哪里分配的、以及哪些函数分配 了大量的内存。MallocDebug还可以找出在程序中分配的、却没有被引用的内存,因此可以帮助您发现内存泄露并跟踪这些泄露的内存是在哪里分配的。
-
QuartzDebug 是一个帮助您对应用程序的显示机制进行调试的工具,对大量进行描画和图像处理的应用程序特别有用。QuartzDebug包括如下几个调试选项:
-
自动闪烁描画模式,这种模式会在每个描画操作之后闪烁一下图形上下文。
-
在更新屏幕区域之前先用黄色对该区域进行描画的模式。
-
用于取得整个系统的窗口列表的静态快照,同时给出每个窗口的拥有者及该窗口消耗多少内存的选项。
-
- Thread Viewer 显示一个进程中各个线程的活动。这个工具显示每个线程的活动时间线,动作在时间线上用不同的颜色表示。点击时间线可以得到与点击位置相对应的活动回溯样本。
还有一些命令行工具可以用于性能分析,比如:
-
top,
对当前正在运行的进程进行采样统计并显示统计结果。 -
gprof,
用于产生程序的执行轮廓 -
fs_usage
,显示文件系统访问的统计信息
还有其它很多命令行工具可以用于性能分析。有关Cocoa应用程序开发可以用哪些性能分析工具以及性能分析的概念、技术、和策略的更多信息,请参见性能编程主题
(Performance Programming Topics
)文档。