本质上,我不确定如何存储 3D 数据结构以实现最快的访问速度,因为我不确定多维数组底层正在发生什么。
注意:每次数组的大小都是常数且已知的,每个元素恰好为16位。
选项一是使用多维数组
由于每个元素应该只有16位长,并且我怀疑多维数组会在内部存储很多其他数组的引用,每个引用至少占用32位,这将浪费很多内存。但是,我担心它可能比每次运行选项二中指定的方程式更快,而速度是这个项目的关键。
那么,是否有人能告诉我速度差异与内存消耗差异之间可能有多大?
注意:每次数组的大小都是常数且已知的,每个元素恰好为16位。
选项一是使用多维数组
data[16, 16, 16]
并通过data[x, y, z]
简单访问。选项二是使用单维数组data[16 * 16 * 16]
,并通过data[x + (y * 16) + (z * 16 * 16)]
进行访问。由于每个元素应该只有16位长,并且我怀疑多维数组会在内部存储很多其他数组的引用,每个引用至少占用32位,这将浪费很多内存。但是,我担心它可能比每次运行选项二中指定的方程式更快,而速度是这个项目的关键。
那么,是否有人能告诉我速度差异与内存消耗差异之间可能有多大?