Solaris 10中的DTrace(Dynamic Tracing)作为过去十年中在操作系统方面最具意义的革新之一,确实是一个非常优秀的性能分析工具。用户能够通过DTrace动态检测操作系统内核和用户进程,以更精确地掌握系统的资源使用状况,提高系统性能,减少支持成本,并进行有效的调节。接下来将通过介绍各种性能分析工具,带你走进性能评测的世界。

1静态分析工具:主要有源代码插装(编译时插装)和采样两种机制。

1.1编译时插装(CITs)工具

能够得到函数的调用次数及调用图,从而发现程序的热点(占用执行时间最多的函数或代码块),其代表产品有Gprof。

CITs被认为是最古老的静态插装技术,但仍然在全世界得到了广泛的使用。它基于源代码级别,如果程序使用的一些外部库或框架的源代码不可及时,它不适合,所以它仅适用于那些仅含少量外部代码的简单程序。

Gprof是一个跨平台的性能分析工具,它在编译时对程序进行插装。在程序的每次函数调用前对目标程序的源代码插入一些监控函数,产生的二进制代码交给一个包装器来执行,在每次函数调用时收集程序的性能信息。

1.2采样工具

采样工具一般是在程序执行的时候通过暂停来记录程序记数器的值及其它与系统当前状态相关的信息。Qprof是Linux平台上获取性能信息的用户级采样工具,当然用户必须设置采样频率和要统计的事件等配置信息。

1.3基于硬件计数器的工具

在目前的CPU里都有一些可编程的硬件计数器,能让开发者在程序执行的底层来分析程序的性能。PerfSuite是Linux平台下一个基于硬件计数器的工具,实现了一个轻量级的应用程序接口。

1.4混合型静态分析工具

传统的采样工具由于不能监控硬件事件,所以不能在各个抽象层次对程序进行profile;同样,硬件计数器技术由于仅仅工作在硬件层,不能获得详细的软件性能信息。但是,如果将两种技术结合起来,就能精确地得到程序在各个层次的性能信息。

vTune是Intel公司开发的一个将硬件计数器和采样技术结合起来的跨平台的性能分析工具。它能让开发者得到程序执行中全面的性能信息,但相对单一 ... (全文...)