我有一个可疑的编码实践。当我需要遍历数量限制在其下的一小部分项目时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 关注
- 699 浏览
添加回答
举报
0/150
提交
取消