求教!
我目前在6657的开发板上运行了DSPLIB里面的FFT库函数。在程序里调用了库函数两次。第一次运行时间是6ms,然后用malloc分配了大量内存,再调用库函数结果执行时间是27ms。为什么malloc会影响同一函数的执行时间呢?怎么解决呢?


FFT函数是我在提供的库上改编的。代码两次打印出的时间第一次是6ms第二次是27ms,同样的函数,中间的差别就是malloc。这个怎么解决呢?谢谢!
Andy Yin1:
两个测试是在一个函数里么,中间是多了一些内存分配的代码么?两个测试的输入输出数据存放位置有变化么。
Teng Zhang3:
回复 Andy Yin1:
感谢您的指导!我的代码是这样的:
执行函数B(参数1,参数2)
分配一些内存大约500K
执行函数B(参数1,参数2)
其他处理(代码量比较大)。
我的测试是这样的,执行函数B是完全一样的函数,就是调用位置一是分配内存前一是分配内存后,发现这两次函数B执行的时间不同,分配内存前6ms,分配内存后27ms差别较大。然后我把其他处理屏蔽掉,发现两次执行B函数的时间又差不多。所以我觉得是其他处理影响了第二次函数B的执行。我的疑问是,为什么在不同位置调用相同函数会有这么大的执行时间的差别?工程中的其他代码会影响同一函数的执行时间吗?
TI中文支持网