我有一個可疑的編碼實踐。當我需要遍歷數量限制在其下的一小部分項目時32000,我將其Int16用于i變量類型而不是Integer。之所以這樣做,Int16是因為我認為使用相比完全使用效率更高Integer。我錯了嗎?使用Int16vs 之間是否沒有有效的性能差異Integer?我是否應該停止使用Int16并只Integer滿足我所有的計數/迭代需求?
3 回答

滄海一幻覺
TA貢獻1824條經驗 獲得超5個贊
根據下面的參考,運行時優化了Int32的性能,并建議它們用于計數器和其他頻繁訪問的操作。
摘自:MCTS自定進度培訓套件(考試70-536):Microsoft?.NET Framework 2.0-應用程序開發基礎
第1章:“框架基礎”
第1課:“使用值類型”
最佳實踐:使用內置類型優化性能
運行時優化了32位整數類型(Int32和UInt32)的性能,因此請將這些類型用于計數器和其他經常訪問的整數變量。
對于浮點運算,Double是最有效的類型,因為這些運算是由硬件優化的。
另外,同一部分的表1-1列出了每種類型的建議用法。與此討論相關:
Int16-互操作和其他特殊用途
Int32-整數和計數器
Int64-大整數

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
Int16實際上可能效率較低,因為用于字訪問的x86指令要比用于字訪問的指令占用更多的空間。這將取決于JIT的功能。但不管如何,它幾乎肯定不會多為迭代變量使用時有效。
- 3 回答
- 0 關注
- 743 瀏覽
添加回答
舉報
0/150
提交
取消