Cen*_*noc 18 c c++ performance
因此,每当我编写代码时,我总会考虑性能影响.我经常想知道,在性能方面使用memcopy相对于其他功能的"成本"是多少?
例如,我可能正在将一个数字序列写入静态缓冲区并专注于缓冲区内的帧,以便在到达缓冲区末尾时保留帧,我可能会将所有数据记录到开头或者我可以实现一个算法来分摊计算.
Ben*_*igt 23
memcpy通常经过优化,可最大限度地提高大型副本的内存带宽.当然,它没有完全避免副本那么快,而对于固定大小的短副本,直接分配可能会更快,因为memcpy有额外的代码来处理奇数长度.
但是当你需要复制一块内存时,很难击败memcpy.它具有极高的可移植性,大多数编译器都竭尽全力使其快速,无论是使用SIMD指令还是内联.
小智 6
可以考虑对性能的影响,但是不要对编写好的干净代码的实际目标过于分散注意力。如果您即使对性能有所了解也倾向于对性能着迷,请尝试着眼于更高层次的含义,而忽略诸如的点点滴滴memcpy,您可以信任编译器和库作者进行优化。
通常避免这种低级的过早优化,因为它会浪费您的时间,效果会感染整个程序,并且如果不进行测量,就无法期望获得任何性能提升。
| 归档时间: |
|
| 查看次数: |
15341 次 |
| 最近记录: |