测量性能
测量和实验是所有改善程序性能尝试的基础。本内容及将介绍两种测量性能的工具软件:分析
器和计时器软件。我将讨论如何设计性能测量实验,使得测量结果更有指导意义,而不是
误导我们。
最基本和最频繁地执行的软件性能测量会告诉我们“需要多长时间”。执行函数需要多长
时间?从磁盘读取配置文件需要多长时间?启动和退出程序需要多长时间?
本内容将主要介绍两种被广泛使用的、具有通用性且价格低廉的工具。
第一个工具是编译器厂商通常在编译器中都会提供的分析器(profiler)。分析器会生成各个函数在程序运行过
程中被调用的累积时间的表格报表。对性能优化而言,它是一个非常关键的工具,因为它测量性能
会列出程序中最热点的函数。
第二个工具是计时器软件(software timer)。开发人员可以自己实现这个工具,就像绝地武
士自己打造他们的光剑一样(请原谅我在这里引用了《星球大战》中的内容打比喻)。如
果带有分析器的豪华版编译器太过昂贵,或是编译器厂商在某些嵌入式平台上不提供分析
器,开发人员依然可以通过测量长时间运行的活动来进行性能实验。计时器软件还可以用
于测量不受计算限制的任务。
第三个工具是非常古老的“实验笔记本”,许多开发人员认为它已经完全过时了。但是实
验笔记本或是其他文本文件仍然是不可或缺的优化工具。