如果我有这样的话,我想知道include?
方法可以对效果产生多大影响:
array = [<array_values>] # Read above for more information
(0..<n_iterations>).each { |value| # Read above for more information
array.include?(value)
}
如果<array_values>
为10,100和1.000,<n_iterations>
为10,100,1000。
答案 0 :(得分:12)
使用Set
(或等效的Hash
)代替数组,以便include
为O(1)
而不是O(n)
。
或者,如果您要执行多个include
,则可以使用数组交集&
或减法-
,这将构建一个临时Hash
来有效地执行操作。< / p>
答案 1 :(得分:1)
我认为ruby-prof可能是一个很好的起点。但是,如果没有别的东西可以比较,那么性能数据将没有用。如同,“这种方法的表现比[其他方法] 好还是差?”
另外,请注意,由于n_iterations增加的数量大于数组的大小,由于#include的数量很多,这段代码可能会表现得更好?调用
array.each do |value|
(0..<n_iterations>).map.include?(value)
end