怎樣寫出乙個更快的 memset memcpy ?

時間 2021-05-05 14:49:05

1樓:謝horace

這題目...沒指明架構要什麼優化?

對ARM的熟悉一些,先說結論,

用NEON memory copy with PLD,然後就是一些引數設定,比如buffer type記得要cachable, 如果做不到也盡可能buffered(來使能write buffer),記得cache line alignment!

目前看來此方式適用於Cortex A7/A8/A9/A15/A53....

參考同樣是這個位址,

ARM Information Center

2樓:姚忠偉

更新一點的也可以看Android的Bionic中的memory copy的實現。也很詳細。

3樓:盧旺杉

寫routine就沒法控制呼叫是否在cache上或者是否對齊,主要的功夫在不同微架構的指令上。彙編是不可避免的了。

這方面,agner還是首選:Software optimization resources. C++ and assembly.

Windows, Linux, BSD, Mac OS X

最後還是廢話一句,實踐中不推薦研習這種奇技淫巧,效能瓶頸不太可能在這裡。

4樓:Tom Zhu

我曾經實現過乙個通過DMA進行記憶體拷貝的系統。

拷貝是通過DMA,如果不是拷貝完就立刻訪問,對效能提公升效果拔群。

如果訪問時DMA還未結束,就spin等待,保證資料完整性。

大部分情況下,記憶體拷貝和其後的邏輯可以並行,特別是從程式設計時就注意到這一點的話。

5樓:noname

看錯題……請無視以下回答……

對於能預估到的長記憶體可以使用對sizeof long來進行求餘並直接以*((long*)(void*))=n如此強迫編譯器利用32位或64位MOV來遞進來按long進行累加copy,末尾單獨用餘數拷貝,效果拔群

怎樣寫出乙個嚇人的恐怖故事?

閒章 完全的乙個故事我不行,不過乙個橋段應該可以。選擇場景中的某乙個事物,考慮一下它的屬性,往人們會覺得恐怖的方面展開聯想。例如鞋子,看看它的一些屬性 屬於穿著一類,大部分穿著走路有響聲。然後,人們覺得恐怖的是什麼呢?乙個白色連衣裙女子,可以很美麗,但如果發現裙子下沒有腳又是另一種感覺。可以轉化一下...

怎樣寫出一手好字捏?

nmlyb 寫字好又有天份。不學書法是乙個極大的損失。現在缺少的是寫字原理。比如行書就是指尖在高速的有韻律地舞動。但這是怎麼做到的?多思考這些問題。一理通萬理通,一法通可得萬法。這是人追求的乙個理想狀態,卻也是書法的魅力所在。有時不在事物的本體上思考,用別的來替代。如武術 舞蹈是怎麼練成的?基本功是...

怎樣寫出優秀的的研究計畫 Research Proposal ?

RoseofVersailles 網際網路是個好東西,可惜絕大部分人都不懂得怎麼用。跑到知乎來問這種問題,我也是醉了,你從知乎上能得到個啥?真正獲批過的Research proposal的樣例,就在網上貼著,怎麼就不知道搜尋一下呢?隨便貼兩個鏈結,拿好不謝。 林沐棋 推薦一本書 the Writin...