linux c编程之memcpy函数使用及性能

    xiaoxiao2023-11-21  9

    原型:extern void *memcpy(void *dest, void *src, unsigned int count);

    用法:#include <string.h>

    功能:由src所指内存区域复制count个字节到dest所指内存区域。

    说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。可以拷贝任何类型的对象,因为函数的参数类型是void*(未定义类型指针),也就是说传进去的实参可以是int*,short*,char*等等,但是由于函数拷贝的过程是一个字节一个字节的拷贝的,所以实际操作的时候要把void*强制转化为char*,这样在指针加的时候才会保证每次加一个字节

    性能:在memcpy大内存(MB单位)按Page页大小拷贝相同的数据效率能提升很多。按4K页大小拷贝,不存在跨页和新的地址转换操作,节省了时间开销。例如拷贝4MB大小的数据,让memcpy一次拷贝4KB(正好为LinuxPage页大小),共拷贝1024次,比直接拷贝4MB效率高很多。

    拓展阅读:

    https://blog.csdn.net/zhaoxinfan/article/details/87885852

    http://blog.chinaunix.net/uid-22122564-id-3655984.html

    最新回复(0)