最近想要考虑测试系统的性能,主要分为如下三个方面:
- 计算性能
- 内存性能
- IO 性能
如果想要测试性能,就需要测试方法和性能测试程序,今天主要考虑测试系统的计算性能,目前在 RTT 中测试计算性能有两种选择,分别是 dhrystone
和coremark
,通过软件包可以很方便地将相关测试代码加入到系统中。
接下来对手上的 zynq 7020/7045
开发板分别进行计算性能测试结果如下:
7020 开发板 666M | 开启 cache | 关闭 cache | 03 优化 | 03 关闭分支预测 |
---|---|---|---|---|
dhrystone |
510 | 24 | 1500 | 659 |
coremark |
461 | 24 | 2571 | 1161 |
7045 开发板 800M | 开启 cache | 关闭 cache | 03 优化 | 03 关闭分支预测 |
---|---|---|---|---|
dhrystone |
358 | 24 | 2148 | 931 |
coremark |
361 | 23 | 3000 | 1333 |
dhrystone
只能对系统的整形运算性能进行测试,而且其结果受到编译器性能很大的影响,有人开玩笑说 dhrystone
是测试了编译器的性能。 coremark
是更新一些的测试,其测试项也更加丰富,例如整数,浮点,矩阵等等都可以进行测试。
经过测试发现如下因素对系统计算性能影响较大,如果这些影响系统性能的因素叠加起来,会带来上百倍的性能差距,例如在 zynq 7045 800M
的情况下,如果系统未经任何优化,coremark
性能分只有 23,而打开所有优化项之后,性能分高达 3000 分(与该 CPU 的标准分数相符),这其中计算性能差距 高达 130 倍 之多。
影响因素 | 说明 |
---|---|
cache | 带来 20-30 倍计算性能影响 |
编译器优化等级 | O3 优化带来 3-5 倍的计算性能影响 |
CPU 分支预测功能 | 带来 2 倍多的计算性能影响 |