我正在使用ARM cortex A9平台来测量某些算法的性能。更具体地说,我使用clock()
函数(time.h)测量一个算法的执行时间。我在调用算法之前和算法返回后立即使用后一个函数。
....
....
....
start=clock();
alg();
end=clock();
...
...
...
然后我使用完全相同的选项编译代码,并生成两个不同的目标文件。第一个名为n,第二个名为nn。在ARM平台上,我在一个核心中运行我的代码。所有其他任务'亲缘关系都设置为其他核心。目标文件n返回0,12秒,而目标文件nn返回0.1秒。我比较了两个二进制文件,但它们没有区别。我注意到如果我给大于1个字母的目标文件命名,那么我的算法执行时间总是更少。此外,如果我运行n.c文件,然后重命名并再次运行它,我也会得到不同的性能数字。
你能不能给我一些想法为什么会这样?提前致谢
P.S.1:我正在使用gcc 4.8.1交叉编译器。
P.S.2:我用我的代码编译代码 arm-none-linux-gnueabi-gcc -mthumb -march = armv7-a -mtune = cortex-a9 -mcpu = cortex-a9 -mfloat-abi = softfp -mfpu = neon -Ofast code.c -o n