ホームページ >バックエンド開発 >Python チュートリアル >Python 関数実行メモリ時間などのパフォーマンス テスト ツールの使用方法
まず、後でさまざまなパフォーマンス テストを行うための基本的な Python 関数を作成します。
def base_func(): for n in range(10000): print('当前n的值是:{}'.format(n))
memory_profiler は Python の非標準ライブラリなので、ここでは pip を使用してインストールします。プロセスを監視したり、メモリ使用量を把握したりできます。
pip install memory_profiler
memory_profiler ライブラリをインストールした後、アノテーションを直接使用してテストします。
from memory_profiler import profile @profile def base_func1(): for n in range(10000): print('当前n的值是:{}'.format(n)) base_func1() # Line # Mem usage Increment Occurrences Line Contents # ============================================================= # 28 45.3 MiB 45.3 MiB 1 @profile # 29 def base_func(): # 30 45.3 MiB 0.0 MiB 10001 for n in range(10000): # 31 45.3 MiB 0.0 MiB 10000 print('当前n的值是:{}'.format(n))
返されたデータの結果から判断すると、現在の関数の実行に 45.3 MiB のメモリが使用されています。
timeit は、セルのコード実行時間をテストできる Python の組み込みモジュールです。組み込みモジュールなので、実行する必要はありません。別途インストールされています。
import timeit def base_func2(): for n in range(10000): print('当前n的值是:{}'.format(n)) res = timeit.timeit(base_func2,number=5) print('当前的函数的运行时间是:{}'.format(res)) # 当前的函数的运行时间是:0.9675800999999993
上記の関数の戻り結果によると、関数の実行時間は 0.96 秒です。
関数のローカル実行時間のみを検出する必要がある場合は、コードの各行の実行時間を検出できる line_profiler を使用できます。
Line_profiler は Python の非標準ライブラリです。インストールには pip を使用します。
pip install line_profiler
これを使用する最も簡単な方法は、テストする必要がある関数を直接追加することです。
def base_func3(): for n in range(10000): print('当前n的值是:{}'.format(n)) from line_profiler import LineProfiler lp = LineProfiler() lp_wrap = lp(base_func3) lp_wrap() lp.print_stats() # Line # Hits Time Per Hit % Time Line Contents # ============================================================== # 72 def base_func3(): # 73 10001 162738.0 16.3 4.8 for n in range(10000): # 74 10000 3207772.0 320.8 95.2 print('当前n的值是:{}'.format(n))
実行時間とコードの各行の割合は、実行結果から確認できます。ここでの時間単位はマイクロ秒であることに注意してください。
心拍数の最もお勧めの点は、心拍数を検出するのと同じように、Web ページ上のプログラムの実行プロセスを検出できることです。非標準ライブラリであり、pip を使用してインストールできます。
pip install heartrate
import heartrate heartrate.trace(browser=True) def base_func4(): for n in range(10000): print('当前n的值是:{}'.format(n))
実行後、コンソールは次のログを出力します:
# * Serving Flask app "heartrate.core" (lazy loading) # * Environment: production # WARNING: This is a development server. Do not use it in a production deployment. # Use a production WSGI server instead. # * Debug mode: off
ブラウザのアドレス: http://127.0.0.1:9999
## が自動的に開きます。 # #
以上がPython 関数実行メモリ時間などのパフォーマンス テスト ツールの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。