为了账号安全,请及时绑定邮箱和手机立即绑定

.NET Integer与Int16?

.NET Integer与Int16?

梵蒂冈之花 2019-12-27 12:48:02
我有一个可疑的编码实践。当我需要遍历数量限制在其下的一小部分项目时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-大整数


查看完整回答
反对 回复 2019-12-27
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

Int16实际上可能效率较低,因为用于字访问的x86指令要比用于字访问的指令占用更多的空间。这将取决于JIT的功能。但不管如何,它几乎肯定不会为迭代变量使用时有效。


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 699 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信