memcpyの威力


     memcpy            ,              。  c/c++          memcpy      ,                。   int           buffer  ,          

example:
uint8_t *buffer=new uint8_t[1024];int sendLength=100;*(int*)buffer=sendLength;
次の場合memcpyは威力を示します.
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
#include<time.h>

#define DUMBCOPY for(unsigned int i=0;i<65535;i++) \
	destination[i]=source[i];
#define MEMERYCOPY memcpy(destination,source,65535);
int _tmain(int argc, _TCHAR* argv[])
{
	clock_t begin, end;
	begin = clock();
	char source[65536],destination[65536];
	int j;
	for(int j=0;j<6553600;j++);
		DUMBCOPY   //MEMERYCOPY 

	end = clock();
	printf("time==%lf",double(end-begin));
	return 0;
}
DUMCOPYを採用する効率はMEMERYCOPYの効率よりも少し調べなければならない.DUMCOPYというsourceとdestinationに対して同じcache行を使用すると、メモリへの参照がヒットするたびにCPUの効率が大幅に低下する.
ライブラリ関数memcpyは、まず1つのcache行を読み出して書き込み、同じcache行を使用することはありません.
毎回メモリが発生します.