memcpy 和 一个字节一个字节的复制的一个区别就是,memcpy 可以复制一个cpu 的字 而 单字节复制只能复制一个字节。
但是,今天还发现了一个很重要的特点,复制的速度 还和 内存的内容相关,如果目标内存 和 当前内存的内容差不多,发现
居然复制速度要快一些。
这个是我在测试字符串复制的性能的时候发现的,可以参考我前面的文章。
http://www.cnblogs.com/niniwzw/archive/2009/12/23/1630777.html
前面文章中,我说的最后一种速度是 96ms, 是错误的。
测试代码如下:
t = clock();
strcpy1(dest, src); //我的复制方法 140ms
printf("%d ms\n", clock() - t);
t = clock();
strcpy(dest, src); //系统函数的复制方法 96ms
printf("%d ms \n", clock() - t);
t = clock();
strcpy(dest, src); //系统函数的复制方法 140ms
printf("%d ms \n", clock() - t);
t = clock();
strcpy1(dest, src); //我的复制方法 96ms
printf(" %d ms\n", clock() - t);
如果你测试一下 用memcpy,可以发现这 96ms就是memcpy复制这个内存区域的速度。
具体原因不知道是为什么。哪位高手可以告诉我。