需要使用一个函数来实时处理一个大型数组 (~1 Mb) ,例如 void processData(char* data)
。
在目标平台上运行了以下测试:
int j = 10;
while(j--)
processData(dataPtr);
每次使用相同的数据。它显示了以下结果:
- 第一次运行大约需要22.5毫秒
- 第二次及以后运行大约需要12.5毫秒
我认为这可能是因为在第二次运行时,数据已经在处理器缓存中,因此速度更快。
问题是:在实际情况下,数据每次都会不同。
是否有任何方法可以对数据进行“预加载”到缓存中?