【发布时间】:2018-09-28 09:23:52
【问题描述】:
我正在测试 CPU 性能。我使用了支持 armv7 和 SMP 的 02 板:cortexa15@1.5GHz 双核和 cortexa7@1GHz 双核。
然后,执行如下简单循环并测量执行时间:
#define DEFAULT_CALC_LOOPS 1000
#define LOOPS_MULTIPLIER 4.2
...
loops = DEFAULT_CALC_LOOPS;
...
void *calc(int loops)
{
int i, j;
for (i = 0; i < loops * LOOPS_MULTIPLIER; i++) {
for (j = 0; j < 125; j++) {
// Sum of the numbers up to J
volatile int temp = j * (j + 1) / 2;
(void)temp;
}
}
return NULL;
}
02板经过各种测试后的结果:
cortexa15:~1.2 毫秒
cortexa7:~5 毫秒
上面的结果有很大的不同。
是否存在影响结果的依赖性或限制?谁有这方面的经验可以分享我的想法?谢谢。
【问题讨论】:
-
看起来很合理,cortexa15 的性能通常是 cortexa7 的 2-3 倍 + 你让它的时钟速度提高了 50%。
-
初看,我也觉得有道理。我做了另一个练习 - 使用了另一个同时支持 a15 和 a7 的板 (iwavesystems.com/rz-g1h-q7-development-kit.html) --> 禁用了所有 a15 并且只保留了双核 a7 --> 我只得到了大约 1.2 毫秒的执行时间。
-
如果您使用的是 GCC,您可以添加
-Ofast -mtune=native优化选项并再次检查差异。