8

再帰を含むプログラムの実行中に特定の関数が費やした時間を知りたいのですが、それを行う最良の方法は何ですか?

ありがとうございました

4

2 に答える 2

15

最良の方法は、いくつかのベンチマーク テスト(個々の機能をテストするため) またはプロファイリング(アプリケーション/プログラム全体をテストするため) を実行することです。Python には組み込みのプロファイラーが付属しています。

または、プログラムの開始時に開始時刻を設定し、プログラムの終了時に開始時刻から現在の時刻を差し引くだけで、基本に戻ることもできます。これは基本的に非常に単純なベンチマークです。

リンクされた質問からの回答からの実装を次に示します。

import time
start = time.time()
do_long_code()
print "it took", time.time() - start, "seconds."

Pythonの標準ライブラリにもベンチマーク用のものが含まれています。

ページにある例から:

def test():
    "Time me"
    L = []
    for i in range(100):
        L.append(i)

if __name__=='__main__':
    from timeit import Timer
    t = Timer("test()", "from __main__ import test")
    print t.timeit()
于 2010-06-29T21:29:59.790 に答える
4

プロファイラーを使おう!

python -m cProfile -o prof yourscript.py
runsnake prof

runsnakeは、プロファイリングの出力を確認するための優れたツールです。もちろん、他のツールを使用することもできます。

プロファイラーの詳細: http://docs.python.org/library/profile.html

于 2010-06-29T22:05:11.137 に答える