2017-04-17 10 views
2

方法メソッドの内部またはメソッドが呼び出している行の間のメソッドの時間測定をどこで呼び出しますか?

def factorization(R, P, Q, K) 
    start_time = timeit.default_timer() 

    ...code... 

    elapsed = timeit.default_timer() - start_time 
    print elapsed 

または私は実行するために、このメソッドを呼び出して内部の間の測定時間を呼び出すための正しい場所はありますか?

if __name__ == "__main__": 

    ..code.. 

    start_time = timeit.default_timer() 

    nP, nQ = factorization(R, P, Q, K) 

    elapsed = timeit.default_timer() - start_time 
    print elapsed 

これは大きく異なるのですか?どうやって?

答えて

1

メソッド呼び出し時の呼び出し時間の測定がより正確になります。あなたの関数factorization(R, P, Q, K)には戻り値があるはずです。戻り値の経過時間を計算することはできません。また、戻り値は関数の部分コードと見なす必要があります。

+0

また、プロファイラだけをプロファイリングするのに便利な場合や、空の関数の呼び出しオーバーヘッドを追加する場合もあります。 (コンパイラはそれを最適化しないと仮定します)。それがどう違うのか?おそらくナノ秒またはマイクロ秒...しかし何か十分な時間を行い、マイクロ秒も加算します。 –

関連する問題