Ruby 如何判断是什么导致迭代搜索速度减慢?
我有一个-,它在几万次迭代后会变慢 总结:Ruby 如何判断是什么导致迭代搜索速度减慢?,ruby,search,iteration,Ruby,Search,Iteration,我有一个-,它在几万次迭代后会变慢 总结: 从每个相邻点搜索最佳点 选择该点作为新点 如果该点是一个死胡同(即,每个相邻点都离期望结果更远),那么它会将该点添加到“禁止点”的散列中,以不再使用 该算法删除最近的点,并移回点n-1 告诉这些迭代何时以及如何减慢的最好方法是什么?我正在考虑类似于“圈时”基准测试的东西,它可以让我绘制代码中哪些部分的成本在增加 从Array#include?切换到Hash#has#u key?已经将整个过程提高了许多数量级。但是随着被禁分数的列表越来越长,Hash
- 从每个相邻点搜索最佳点
- 选择该点作为新点
- 如果该点是一个死胡同(即,每个相邻点都离期望结果更远),那么它会将该点添加到“禁止点”的散列中,以不再使用
- 该算法删除最近的点,并移回点n-1
Array#include?
切换到Hash#has#u key?
已经将整个过程提高了许多数量级。但是随着被禁分数的列表越来越长,Hash\has\u key?
会开始延迟吗?在什么情况下我可以看到显著的减速
被禁止的_点散列
只是由{“string rep.of array”=>1}
组成,因为我只使用它来搜索键
感谢您的帮助。请查看ruby prof()以分析您的代码。在没有分析工具的情况下调查性能问题是浪费时间。散列查找永远不会延迟(据我所知有限)