我得到的任务是让这段代码变慢。我可以在方法内部进行更改。我之所以这样做的原因是尝试ruby profiling。如何或在哪里可以更改代码以使其更慢?
class FibonacciSequence
def next_fib
@index += 1
if @seq[@index].nil?
f = @seq[@index - 1] + @seq[@index - 2]
@seq[@index] = f
return f
else
return @seq[@index]
end
end
def current_fib
return @index >= 0 ? @seq[@index] : nil
end
def current_index
return @index >= 0 ? @index : nil
end
def [](n)
return nil if n < 0
return @seq[n] if n <= @index
while @index < n
self.next_fib
end
return self.current_fib
end
end
答案 0 :(得分:1)
sleep(num_secs)是最好的方式。
除此之外是多次调用函数,通过循环迭代,使数组/哈希在其中说出1000个元素,并在其上应用sort,map等方法, 读取远程文件,读取大量数据并处理它(获取1000个用户名并将它们全部转换为大写。在这里你可以读取db中的行并更新一些数据克隆它并将其保存回来也有帮助,如果你的数据库是远程的,这将给出你更滞后:)
但是睡眠是最好的方式,因为你只能评论1行,这段代码是最佳的,或者你可以根据需要改变时间参数。