先做个对比
#define SMARTCOPY memcpy(destination,source,65536);
#define DUMBCOPY for(i=0;i<65536;i++) \
destination[i]=source[i]
main(){
char source[65536],destination[65536];
int i,j;
for(j=0;j<100;j++)
//SMARTCOPY;
DUMBCOPY;
}
GCC 分为两种编译,
1、注释SMARTCOPY,打开DUMPCOPY
2、注释DUMBCOPY,打开SMARTCOPY
linux下实测结果
1、打开SMARTCOPY
root@tracing017-> time ./a.out
real 0m0.003s
user 0m0.001s
sys 0m0.002s
2、打开DUMBCOPY
root@tracing017-> time ./a.out
real 0m0.032s
user 0m0.030s
sys 0m0.002s