如何判断迭代搜索的速度变慢?

时间:2012-08-09 01:35:26

标签: ruby search iteration

我有iterative search algorithm on gist - (or see the full github repo here) - 经过几万次迭代后会慢下来。

要点:

  • 从每个相邻点搜索最佳点
  • 选择指出新点
  • 如果该点是死胡同(即,每个相邻点距离所需结果更远),则将该点添加到“禁止点数”的哈希值中以永远不再使用
  • 该算法删除最近的点,并返回到点n - 1

什么是判断这些迭代何时以及如何减速的最佳方式?我正在考虑类似于“圈时”基准测试的东西,它可以让我绘制代码中哪些部分的成本增加。

Array#include?切换到Hash#has_key?已经将整个事情加速了很多个数量级。但随着禁止点数越来越长,Hash#has_key?会开始滞后吗?我可以期待看到显着放缓的重点是什么?

banned_points Hash仅由{"string rep. of array" => 1}组成,因为我只是用它来搜索密钥。

感谢您的帮助。

0 个答案:

没有答案