作者kkkmode (kkk)
看板Soft_Job
標題[請益] C語言memcpy()的效率問題
時間Wed Apr 9 09:52:15 2014
各位好,
我測試了一段程式,如下:
#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
→ TK421:有C&C++專版 這個本版似乎無關 04/09 10:47
→ kkkmode:不好意思發錯版,已轉至c_and_cpp 04/09 11:11