如何减慢代码速度

时间:2016-03-29 09:59:22

标签: ruby-on-rails ruby

我得到的任务是让这段代码变慢。我可以在方法内部进行更改。我之所以这样做的原因是尝试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

1 个答案:

答案 0 :(得分:1)

sleep(num_secs)是最好的方式。

除此之外是多次调用函数,通过循环迭代,使数组/哈希在其中说出1000个元素,并在其上应用sort,map等方法, 读取远程文件,读取大量数据并处理它(获取1000个用户名并将它们全部转换为大写。在这里你可以读取db中的行并更新一些数据克隆它并将其保存回来也有帮助,如果你的数据库是远程的,这将给出你更滞后:)

但是睡眠是最好的方式,因为你只能评论1行,这段代码是最佳的,或者你可以根据需要改变时间参数。