.NET Integer与Int16?

我有一个可疑的编码实践。

当我需要遍历数量限制在其下的一小部分项目时32000,我将其Int16用于i变量类型而不是Integer。之所以这样做,Int16是因为我认为使用相比完全使用效率更高Integer

我错了吗?使用Int16vs 之间是否没有有效的性能差异Integer?我是否应该停止使用Int16并只Integer满足我所有的计数/迭代需求?


梵蒂冈之花
浏览 660回答 3
3回答

沧海一幻觉

根据下面的参考,运行时优化了Int32的性能,并建议它们用于计数器和其他频繁访问的操作。摘自:MCTS自定进度培训套件(考试70-536):Microsoft®.NET Framework 2.0-应用程序开发基础第1章:“框架基础”第1课:“使用值类型”最佳实践:使用内置类型优化性能运行时优化了32位整数类型(Int32和UInt32)的性能,因此请将这些类型用于计数器和其他经常访问的整数变量。对于浮点运算,Double是最有效的类型,因为这些运算是由硬件优化的。另外,同一部分的表1-1列出了每种类型的建议用法。与此讨论相关:Int16-互操作和其他特殊用途Int32-整数和计数器Int64-大整数

汪汪一只猫

Int16实际上可能效率较低,因为用于字访问的x86指令要比用于字访问的指令占用更多的空间。这将取决于JIT的功能。但不管如何,它几乎肯定不会多为迭代变量使用时有效。
打开App,查看更多内容
随时随地看视频慕课网APP