gpt4 book ai didi

vb.net - 高效码: short vs integer data types in VB.网

转载 作者:行者123 更新时间:2023-12-02 03:02:22 25 4
gpt4 key购买 nike

我正在编写一个性能相当关键的应用程序。我有点困惑对于 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"

我正在使用大量数据(锯齿状数组中平均约有 500 万个值[10 或更多][30][128,128])来实时生成位图(数据值的热图)。所有数据点都是 200 到 3500 之间的整数,因此我可以使用短整型或整数。哪个最有效?

谢谢。

最佳答案

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

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

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

对于任何大到足以跨越多个缓存 block 的数组,使用 Int16 很可能比 Int32 更高效,而且一个缓存 block 通常只有几千字节。

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

关于vb.net - 高效码: short vs integer data types in VB.网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32736202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com