我已经看到了类似这样的问题的其他答案,"fast“,还有一些人建议,”想办法不复制“...I有一个程序有点像这样,因为我正在尝试让多个线程在1024字节块上执行memcpy,也使用agner的asmlib来压缩性能,但是受到内存速度的限制。
您能给出一个例子,说明在某些情况下,而不是如何复制它比memcpy更快吗?
发布于 2013-07-31 02:55:43
如果没有看到任何代码,就很难显式地回答这个问题。听起来,您正在将512字节数据的两个扇区读入一个1024字节的缓冲区中,但是您希望在数据的末尾追加一个额外的64个字节。
分配1088字节的缓冲区,将您的读取定向到缓冲区的偏移量0和偏移量512,然后从偏移量1024开始,用64字节的数据更新缓冲区。
如果您希望另一个线程在没有memcpy的情况下拥有这个数据,那么将指向1088缓冲区开始的指针传递给它。
希望这接近于您的应用程序所做的工作。
发布于 2013-08-20 17:36:04
如果进程在多处理器环境中处理内存,则可以检查NUMA体系结构。
我不知道NUMA是否会影响踏板。如果不是,我可以建议您检查您正在使用的cpu架构是如何工作的。
https://stackoverflow.com/questions/17942008
复制相似问题