我注意到,當我用整數替換所有的字節實例時,我的nds應用程序工作得更快一些。所有的例子都會盡可能地把u8/u16實例放到網上。有一個具體的原因,爲什麼這是這種情況?爲什麼整數在NDS上的處理速度比字節快?
6
A
回答
16
Nintendo DS使用的主處理器是ARM9,32位處理器。
參考:http://en.wikipedia.org/wiki/ARM9
通常,CPU將在word sizes中執行操作,在本例中爲32位。根據您的操作,必須將字節轉換爲整數或反之亦然可能會給處理器帶來額外的壓力。這種轉換以及可能缺乏32位整數以外的值的指令可能會導致速度不足。
7
作爲Daniel Li所說的補充,ARM平臺上的存儲器訪問必須是字對齊的,即存儲器讀取次數必須是32位的倍數。從內存中提取一個字節變量意味着提取包含相關字節的整個字,並執行所需的按位操作,以使其適合處理器寄存器的最低有效位。
這些額外的指令是由編譯器自動發出的,因爲它知道變量的實際對齊。
相關問題
- 1. 爲什麼在F#中處理數組比速度快
- 2. 爲什麼在.NET中投射速度比反射速度快?
- 3. 爲什麼整數比較比字符串比較快?
- 4. 比較字符串或字節數組的速度更快嗎?
- 5. 爲什麼在Python中列表的理解速度可能比map()更快?
- 6. 在字節[]中查找字節[]的速度和在字符串中的字符串 - 爲什麼後者更快?
- 7. 爲什麼ObjectOutputStream.writeObject在寫入字節數組時比寫入字節更快?
- 8. 爲什麼python實現miller-rabin的速度比ruby快很多?
- 9. 爲什麼$ a + = 3的執行速度比$ a = $ a + 3快?
- 10. 爲什麼.NET Sql Server的訪問速度比Excel Interop快?
- 11. 爲什麼一個工會比一個組的速度快
- 12. 爲什麼md5在字符串上的散列速度比在Python中的numpy數組快嗎?
- 13. 在latin1中查詢速度很快,utf8速度慢 - 爲什麼?
- 14. 爲什麼字符串的字節長度比長度長?
- 15. 在多重處理中,爲什麼在訪問此隊列時1的處理速度快於多倍?
- 16. 爲什麼兩個連接運行速度比OR條件快?
- 17. 爲什麼減少速度比sum或sumBy快?
- 18. 爲什麼C++ Lambda函數比等效函數的速度快得多
- 19. 爲什麼我的OpenCV CUDA比簡單的閾值處理運行速度慢?
- 20. 在節點上快速傳輸 - 什麼數據存儲?
- 21. 與整數比較相比,爲什麼字符串比較如此之快?
- 22. 爲什麼在Delphi中ADO Next記錄處理速度變慢?
- 23. 爲什麼IEnumerable速度慢,List速度很快?
- 24. 爲什麼Facebook上的智能搜索速度如此之快
- 25. 爲什麼「不」比Python中的「bool()」更快(或者,Python函數的速度與語句的速度)?
- 26. 爲什麼在數據庫複製中,從機讀取速度比主機速度快
- 27. 什麼是Dataproc上的「處理節點」?
- 28. 帶符號和無符號整數 - 爲什麼字節處理方式不同?
- 29. 爲什麼youtube視頻在Chrome瀏覽器上比在Firefox上快速運行?
- 30. 爲什麼批處理模式比parfor快得多?
你能舉一個具體的代碼示例嗎?我懷疑你看到的例子在結構中聲明瞭8/16位變量,而你將它們當作本地使用。 – 2012-07-09 19:27:57