簡體   English   中英

使用Int32或您需要的

[英]Using Int32 or what you need

你應該在你知道價值不會高於32,767的地方使用Int32嗎?

我想保持記憶力,不管怎么說,只是為了執行簡單的算法而使用演員陣容變得煩人。

short a = 1;

short result = a + 1; // Error

short result = (short)(a + 1); // works but looks ugly when does lots of times

什么對整體應用程序性能更好?

據我所知,盡可能使用int是一個好習慣。 int的大小等於許多體系結構上的字大小,所以我認為在某些算術運算中使用short時可能會有輕微的性能下降。

如果要創建大型數組,那么它可以節省大量內存以使用更窄的類型(更少的字節),因為數組的大小將是“類型寬度”*“元素數量”+“開銷”。

但是,我非常確定默認情況下,在類和結構中,它們將沿着整個字邊界打包,例如32bit = 4bytes。 短路仍將打包成4字節的空間。

但是,您可以使用結構布局手動配置structs \\ classes中的打包:

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.structlayoutattribute(VS.71).aspx

與任何與績效相關的問題一樣:“不要思考 - 衡量”。

從API的角度來看,必須保持從短路到內部等的轉換是非常煩人的,因為您會發現大多數API將使用整數。

我使用小於int32的整數數據類型的3個原因:

  1. 具有嚴重內存限制的系統。
  2. 巨大的陣列或類似的。
  3. 我認為它會使代碼的目的更容易閱讀和理解。

我主要做正常的Windows應用程序,所以通常對我來說很重要的唯一原因是第3個。

除非你創造了成千上萬的成員,否則在這里和那里節省一些字節的空間在任何現代機器上都無關緊要。 我認為過早優化的格言適用於此。 它可能會讓你感覺更好,但你沒有得到任何特別可衡量的東西。 IMO - 如果您實際使用大量內存,則僅優化內存使用量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM