高效代码:VB.Net中的短整数数据类型
我正在编写一个性能非常关键的应用程序.对于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之间的整数,所以我可以使用short或integer.哪个效率最高? 谢谢.
Int32类型对于常规变量(例如32位和64位应用程序中的循环计数器)最有效.
处理大型数据时,读取/写入单个值的效率无关紧要,重要的是访问数据,以便尽可能减少内存缓存未命中.与访问高速缓存的内存相比,内存高速缓存未命中非常昂贵. (此外,与内存缓存未命中相比,页面错误(内存交换到磁盘)非常昂贵.) 为了避免缓存未命中,您可以尽可能紧凑地存储数据,并且在处理数据时,您可以尽可能线性地访问数据,以便您访问的内存区域尽可能小. 对于任何足以跨越多个缓存块的数组,使用Int16最有可能比Int32更有效,并且缓存块通常只有几千字节. 由于您的值可以仅以12位存储,因此将每个值存储在1.5个字节中甚至可能更有效,尽管这意味着处理数据的处理更多.减少25%的数据大小可能会弥补额外的处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |