本示例说明有效数据访问和优化的问题。它使用标准 BLAS 库中所含的矩阵向量乘法例程 dgemv 的两种实现。程序中包含两个例程的三个副本。第一个副本未经优化即进行编译,用以说明数组元素的访问顺序对例程性能的影响。第二个副本用 -O2 编译,第三个副本用 -fast 编译,说明编译器循环对重新排序和优化的影响。
本示例还说明硬件计数器和编译器注释在性能分析中的使用。
为了运行此示例,必须使用 UltraSPARCTM III 或之后的处理器系列的计算机硬件。有关为本示例收集性能数据的说明,参见为 cachetest 示例收集数据。收集性能数据之后,便可学习本教程,它分为以下三个部分,可以依次完成:
执行速度
程序结构和缓存行为
程序优化和性能