c - 内存到内存传输优化,如何不memcpy?

标签 c performance memory optimization memcpy

我看到过类似“fast memcpy”这样的问题的其他答案,还有其他人建议“找出一种复制的方法”...我有一个有点像这样的程序现在我正在尝试优化...它有多个线程在 1024 字节 block 上执行 memcpy,还使用 ​​agner fog 的 asmlib 来压缩性能,但受到内存速度的限制。

您能否举例说明在某些情况下如何复制它比 memcpy 更快?

最佳答案

如果没有看到任何代码,这很难明确回答。听起来您正在将两个 512 字节数据扇区读入 1024 字节缓冲区,但您希望将额外的 64 字节附加到数据末尾。

分配一个 1088 字节的缓冲区,将您的读取定向到缓冲区的偏移量 0 和偏移量 512,然后用从偏移量 1024 开始的 64 字节数据更新缓冲区。

如果您希望另一个线程在没有 memcpy 的情况下拥有此数据,则将指针传递给 1088 缓冲区的开头。

希望这接近于您的应用程序正在执行的操作。

关于c - 内存到内存传输优化,如何不memcpy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17942008/

相关文章:

c++ - 具有最小依赖性的跨平台 C/C++ RabbitMQ 库

c - 在微调按钮中右对齐 (gtk/C)

c - 为什么在C程序中变量被突变?

linux - 将 1 到 1000 万的整数列表写入文件时如何获得良好的性能?

c - malloc'ing 和 realloc'ing 指针在返回时导致内存泄漏

python - Windows 7 python 32 上 python.exe 的内存 - Numpy 仅使用一半的可用内存?

memory - ARM中 transient 和非 transient 内存的概念和优势?

c - 如何编写一个接受整数输入并打印最大数字的输入的C程序?

performance - 如何以最少的数据库命中次数将多个实例添加到 Django 反向外键集中?

python - 基于 Pandas 数据框替换 numpy 二维数组中的值