首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.NET整型vs Int16?

.NET整型vs Int16?
EN

Stack Overflow用户
提问于 2008-09-24 18:44:51
回答 7查看 24.2K关注 0票数 52

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

当我需要迭代计数限制在32000以下的一小部分项时,我会对i变量类型使用Int16,而不是Integer。我这样做是因为我认为使用Int16比使用成熟的Integer更有效。

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

EN

回答 7

Stack Overflow用户

发布于 2008-09-24 18:47:55

Int16实际上可能效率较低,因为用于字存取的x86指令比用于双字存取的指令占用更多的空间。这将取决于JIT做什么。但不管怎样,当它在迭代中用作变量时,它几乎肯定不会更有效。

票数 11
EN

Stack Overflow用户

发布于 2008-09-24 18:46:55

事实恰恰相反。

32 (或64)位整数比int16快。通常,原生数据类型是最快的。

如果你想让你的数据结构尽可能的精简,Int16是很好的选择。这节省了空间,并可能提高性能。

票数 9
EN

Stack Overflow用户

发布于 2008-09-24 18:49:51

在现代硬件上,任何性能差异都将是如此微小,以至于无论出于何种意图和目的,它都不会产生任何差异。尝试编写几个测试工具,并运行它们几百次,取平均循环完成时间,您就会明白我的意思。

如果你的资源非常有限,从存储的角度来看,这可能是有意义的-嵌入式系统具有很小的堆栈,为慢速网络(例如GPRS等)设计的有线协议,等等。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/129023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档