所以每当我编写代码时,我总是会考虑性能影响。我经常想知道,就性能而言,相对于其他功能而言,使用 memcopy 的“成本”是多少?
例如,我可能正在将一系列数字写入静态缓冲区并专注于缓冲区中的帧,以便在到达缓冲区末尾时保留帧,我可能会将其全部复制到开始或者我可以实现一个算法来分摊计算。
最佳答案
memcpy 通常经过优化以最大化大型拷贝的内存带宽。当然,它并没有完全避免复制那么快,而且对于固定大小的短拷贝,直接赋值可能会更快,因为 memcpy 有额外的代码来处理奇数长度。
但是当你需要复制一 block 内存时,很难击败 memcpy。它具有高度的可移植性,并且大多数编译器都竭尽全力使其速度更快,无论是使用 SIMD 指令还是内联。
关于c++ - C/C++ 中 Memcopy 的性能成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3032859/