首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >高效代码: VB.Net中的短数据类型与整数数据类型

高效代码: VB.Net中的短数据类型与整数数据类型
EN

Stack Overflow用户
提问于 2015-09-23 17:47:50
回答 2查看 1.5K关注 0票数 6

我正在编写一个性能相当关键的应用程序。我有点困惑,不知道哪种数据类型是x64 CPU最有效的数据类型。

MDSN说"In some cases, the common language runtime can pack your Short variables closely together and save memory consumption.""The Integer data type provides optimal performance on a 32-bit processor"

我使用大量数据(参差不齐的array10中平均约500万个值或更多128,128个值)来实时生成位图(数据值的热图)。所有的数据点都是200到3500之间的整数,所以我可以使用短整型。哪一个是最有效的?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-09-23 18:23:51

在32位和64位应用程序中,Int32类型对于常规变量(例如循环计数器)是最有效的。

当您处理大型数据数组时,读/写单个值的效率并不重要,重要的是访问数据,以便获得尽可能少的内存缓存未命中。与访问缓存的内存相比,内存缓存未命中的代价非常高。(此外,与内存缓存未命中相比,页面错误(内存交换到磁盘)的开销非常大。)

为了避免缓存未命中,您可以尽可能紧凑地存储数据,并且在处理数据时,您可以尽可能线性地访问它,以便您访问的内存区域尽可能小。

对于任何大到足以跨越多个缓存块的阵列,使用Int16最有可能比使用Int32更有效,而且缓存块通常只有几千字节。

由于您的值可以只存储在12位中,因此将每个值存储在1.5字节中可能会更有效,尽管这意味着需要更多处理数据。减少25%的数据大小可能足以弥补额外的处理。

票数 1
EN

Stack Overflow用户

发布于 2015-09-23 18:04:15

一般来说,变量使用的内存越少,它的处理速度就越快,并且内存管理也会更好,因为您的应用程序将使用更少的内存。

Short只需要整数所需内存的一半,如果你只需要一个16位的数字,并且你确信它永远不会更大,那么使用Short。

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

https://stackoverflow.com/questions/32736202

复制
相关文章

相似问题

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