簡體   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