ホームページ >バックエンド開発 >Python チュートリアル >Python 関数実行メモリ時間などのパフォーマンス テスト ツールの使用方法

Python 関数実行メモリ時間などのパフォーマンス テスト ツールの使用方法

WBOY
WBOY転載
2023-05-10 12:40:131008ブラウズ

基本的なテスト関数

まず、後でさまざまなパフォーマンス テストを行うための基本的な Python 関数を作成します。

def base_func():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))

memory_profiler process

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 時間の使用法

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 を使用できます。

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 サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。