[請益] C語言memcpy()的效率問題
各位好,
我測試了一段程式,如下:
#include <stdio.h>
#define size 65536
void main(){
char source[size], destination[size];
int j;
for(j=0; j<100000; j++)
memcpy(destination, source, size);
}
把size改成65535或65537執行速度大概會慢10倍(compiler沒設最佳化)
其他2的冪次方加減1也有此現象(例如1024改成1023或1025)
我覺得可能是cache沒命中造成的
但詳細的原因不是很清楚
如果各位知道原因的話請幫忙一下,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.44.11
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1397008338.A.77E.html
→
04/09 10:47, , 1F
04/09 10:47, 1F
→
04/09 11:11, , 2F
04/09 11:11, 2F