繁体   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