2016-03-29 10 views
0

このコードを遅くする作業があります。私は方法の中でただ変更することができます。理由は、私がこれを行う理由は、ルビーのプロファイリングを試みることです。どのようにしてどこを変更してコードを遅くすることができますか?コードをスローダウンする方法

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 
+5

あなたは 'sleep(num_secs)'を使って実行を遅らせることができます。 –

+0

はい、私はすでにこれを試しています...コードを変更して速度を遅くするオプションがありますか?私はそこにいくつかのループやいくつかの不要な行のコードを与える考えがあります...しかし、私はどこでどのようには分かりません。 – user3463055

+0

プロファイルを作成するためにコードを「スローダウン」する必要があるのはなぜですか?そこにコードをプロファイルするための特定のツールがあります。それらの1つは:https://github.com/ruby-prof/ruby-prof – alediaferia

答えて

1

sleep(num_secs)が最も良い方法です。

これは、配列/ハッシュを作り、ループを通じてitterate、関数を複数回呼び出している以外のことで1000個の要素を言うと、その上に並べ替え、マップ、などの方法を適用し、 リモートファイルを読み込み、膨大なデータを読み取り、プロセスには、(取得1000ユーザーの名前を大文字に変換してください。ここではDB内の行を読み込み、データのクローンを更新して元に戻すこともできます。あなたが1行だけコメントすることができ、このコードが最適になるか、必要に応じて時間パラメータを変更することができるように、最良の方法です。

関連する問題