Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance hash函数的改进_Performance_Actionscript 3_Hash_Vector_Spatial - Fatal编程技术网

Performance hash函数的改进

Performance hash函数的改进,performance,actionscript-3,hash,vector,spatial,Performance,Actionscript 3,Hash,Vector,Spatial,这是关于2d的空间哈希。。。(如果我说的不是空间散列,请原谅) 我们将x和y坐标转换为表示存储桶(组)的数组中的索引。 我读过的所有论文/文章以及我自己都使用: int grid\u cell=x/单元格大小+y/单元格大小*宽度 在AS3中,为每个x和y预先计算索引并将结果存储在2个向量(如xMap:Vector)中是否更有效。包含x/单元格大小和yMap:向量。y/单元格大小*宽度,然后使用以下方法检索: int grid_cell=xMap[x]+yMap[y];//网格是存储桶的数组 简

这是关于2d的空间哈希。。。(如果我说的不是空间散列,请原谅)
我们将x和y坐标转换为表示存储桶(组)的数组中的索引。
我读过的所有论文/文章以及我自己都使用:
int grid\u cell=x/单元格大小+y/单元格大小*宽度

在AS3中,为每个x和y预先计算索引并将结果存储在2个向量(如xMap:Vector)中是否更有效。包含x/单元格大小和yMap:向量。y/单元格大小*宽度,然后使用以下方法检索:
int grid_cell=xMap[x]+yMap[y];//网格是存储桶的数组


简言之:从向量中检索项目是否比AS3中的y/cell_size*width等计算更快??

我自己的基准测试结果波动很大,需要我来决定,这是一个性能关键函数。

除非向量非常非常大,否则查找值比计算值要快。

除非向量非常大,查找值要比计算值快得多。

首先-欢迎来到stackoverflow,这是一篇多么好的第一篇文章。其次,你说你自己的基准测试结果波动很大?您是否尝试过只运行函数来计算此值,然后运行1000次,而不是使用其他方法检查1000次?我相信数组方法总是会更快,但是,它会占用更多内存,但我还没有做基准测试。可能取决于向量的长度。你所有的坐标都是整数吗?或者你也需要散列中间值吗?@jmh_gr:它们当然都是整数,没有任何数组可以容纳所有的数字,即使是从0到0.1***@h2oooooo:thx,这是一个温暖人心的欢迎:)我在一个发布版本中重播了我的测试(为杰克逊·邓斯坦(jackson dunstan)的网站提供了thx,以获得澄清)。事实证明,向量法比计算速度至少快1.5倍,最多可计算3000个向量长度(@the_asMan),这比我需要的要多。@Chadyk很高兴你找到了它-记住回答并接受你自己的问题,以便其他人也能找到你的解决方案(我认为你可以拥有11个声誉,但我不确定——但我认为你需要一点时间才能做到这一点)首先-欢迎来到stackoverflow,这是一篇多么好的第一篇文章。其次,你说你自己的基准测试结果波动很大?你有没有试过只运行函数来计算这个,然后运行它,比如1000次,而不是使用另一种方法来检查1000次?我相信数组方法总是很快的r、 不过,这会占用更多内存,但我还没有做基准测试。可能取决于矢量的长度。你的坐标都是整数吗?或者你也需要散列中间值吗?@jmh_gr:它们当然都是整数,没有一个数组会保存所有的数字,即使是从0到0.1***@h2oooooo:thx,表示热烈的欢迎:)我在一个发布版本中重播了我的测试(为了澄清这一点,请访问jackson dunstan网站的thx)。事实证明,向量法比计算速度至少快1.5倍,最多可计算3000个向量长度(@the_asMan),这比我需要的要多。@Chadyk很高兴你找到了它-记住回答并接受你自己的问题,以便其他人也能找到你的解决方案(我认为你可以拥有11个声誉,但我不确定——但我认为你需要一点时间才能做到这一点)