2012-01-07 29 views
4

我會給內部培訓有關ARM C++,專注於編程技巧和提示,和我搜索了一些網頁,如:高效C++的ARM

所有的以上主要是針對ARM的C,在這我想知道它們適用於C++爲好,說結構填充和等

你能幫助我在T帽子,T.H.X

+1

在高效C爲ARM發現的技巧適用於最現代的CPU(除了「沒有DIV指令」)。使用char和short來節省「空間」通常比「值得」花費更多的時間。 – jmucchiello 2012-01-07 02:43:28

回答

1

我沒有看第一環節,對於ARM的第二鏈路高效C是非常好的,感謝發現和分享的是,我要指人們該鏈接。

以同樣的方式,今天彙編語言的禪與今天仍然相關,不是因爲現代x86與8088/86和「自行車愛好者」有關,而是因爲思考過程和所教的分析不會隨着時間而改變。自行車愛好者可能會從語言到語言或目標到達目標,但您如何找到它們並不是。這本書過時並且無關緊要,因爲我在某處讀了一篇8088/86左右的文章,但是我讀了它,並且使用了我以後每天學到的東西。

同樣在這裏爲ARM的高效C以及適用於C++中的類似項目,但更重要的是看在早期的幻燈片,在任何特定的結構或代碼顯示。你必須通過檢查來分析,並使用一個分析器(與彙編語言的Zen說的沒什麼不同,看看它的時間)。然後,Efficient C for ARM頁面繼續檢查一些示例,獲取C++代碼並編譯它,然後反彙編,並查看實際發生的情況。有這樣做的問題是,你必須認識到,有一個編譯器的多種調諧旋鈕和編譯器都在不斷演變,以及不同的編譯器說,GCC,LLVM(鐺)和Visual C/C++是完全不同的。呈現給不同編譯器和不同版本的編譯器以及具有不同優化設置的相同編譯器的相同C++源代碼將產生不同的結果。

當你想微觀優化時,你必須通過大量的經驗來反彙編和分析編譯器如何處理你的代碼(針對你關心的每個目標)來學習編譯器的工作方式。只有這樣你才能開始做一些真正的優化,而不必訴諸編寫彙編程序。儘管人們可能會告訴你可以這樣做,但在某些情況下,通過簡單地重新排列結構,函數,代碼行等,可以顯着提高執行性能。還可以使代碼更易於移植到其他處理器,並使代碼更快在許多平臺上,不只是一個。該諤諤是正確的,你需要有一個很好的理由,有時候它並沒有改變的可讀性,但往往採取遠遠使得代碼不可讀或不可維護的或易碎等隨時安排您的結構以一種合理的方式,首先是較大的對齊變量,然後逐漸變小。其他的事情,雖然你可能不想做習慣,但只適用於特殊場合。

+0

ewww,只是看着你的第一個鏈接,面試問題,沒有讀到,不遵循這些建議,不要問這些問題面試候選人。一旦你在這個領域有很多的經驗,然後回去看看那個頁面。是的,在那裏有一些智慧和經驗,但你必須知道如何以及何時使用它,而不是使用它。它沒有深入到什麼和什麼,以及dos和donts。 – 2012-01-07 04:52:30