c++ - C/C++ 中 Memcopy 的性能成本

标签 c++ c performance

所以每当我编写代码时,我总是会考虑性能影响。我经常想知道,就性能而言,相对于其他功能而言,使用 memcopy 的“成本”是多少?

例如,我可能正在将一系列数字写入静态缓冲区并专注于缓冲区中的帧,以便在到达缓冲区末尾时保留帧,我可能会将其全部复制到开始或者我可以实现一个算法来分摊计算。

最佳答案

memcpy 通常经过优化以最大化大型拷贝的内存带宽。当然,它并没有完全避免复制那么快,而且对于固定大小的短拷贝,直接赋值可能会更快,因为 memcpy 有额外的代码来处理奇数长度。

但是当你需要复制一 block 内存时,很难击败 memcpy。它具有高度的可移植性,并且大多数编译器都竭尽全力使其速度更快,无论是使用 SIMD 指令还是内联。

关于c++ - C/C++ 中 Memcopy 的性能成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3032859/

相关文章:

.net - 为什么 .NET 中的多维数组比普通数组慢?

java - 哪个代码更有效?为什么?

c++ - 'operator*' 错误不匹配

c++ - 为什么枚举与 Windows 中的位字段不兼容?

c - 字符指针如何处理每个字节的MSB位?

c - 如何轻松可视化 C 应用程序生成的调试数据?

c - 代码是如何工作的?

Java - 最高效的随机访问多线程列表

c++ - std::allocator<T>::deallocate 的第二个参数的目的是什么?

c++ - 如何在 Windows 中获取所有附加虚拟磁盘的列表?