繁体   English   中英

当执行memcpy()时,通常使用哪种硬件资源?

[英]What HW resource is mostly used when one does memcpy()?

这似乎是一个非常新手的问题,但我突然发现自己毫无头绪。 我正在尝试分析执行大量内存复制的ac应用程序,并且我可以选择减少该数量的程序(需要重新设计)。 我想知道是否值得,但是我不知道它将影响什么资源或如何对其进行监视。

如果有人知道什么资源(以及如何在Linux中进行监视),并且/或者参考了Agner或其他优化手册中的部分,我将非常感激。 谢谢。

memcpy使用CPU以便将内存从一个缓冲区复制到另一个缓冲区。 一般来说,执行大量memcpy代码将受CPU限制。

话虽如此,某些基础设计可能会有所不同。 特别是,如果您要进行大量内存复制,则可能是您一次使用了内存并将其丢弃。 如果是这种情况,则说明您没有充分利用CPU的数据缓存。 切换到将内存保持在原处的算法可能会给您带来巨大的好处。

至于分析,我知道valgrind有一个检查缓存效率的工具。 也许也是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM