次の方法で共有


Visual Studio で Python コードをプロファイルする

Visual Studio には、コードをデバッグするときに Python アプリケーションのプロファイリング機能が用意されています。 Visual Studio デバッガー を使用すると、コードをステップ実行して変数の確認、プログラムの状態の分析、潜在的な問題の解決などを行うことができます。 Visual Studio プロファイル機能は、プログラムの実行時間に関する情報を提供します。 この情報を使用して、コードのパフォーマンスの問題を特定できます。

プロファイリングは、CPython ベースのインタープリターを使用する場合、Python 3.9 以前で使用できます。

[前提条件]

Visual Studio for Mac はサポートされていません。 詳細については、「 Visual Studio for Mac の概要」を参照してください。 Windows、Mac、Linux 上の Visual Studio Code は、 使用可能な拡張機能を通じて Python と適切に連携します

CPython ベースのインタープリターでプロファイラーを使用する

Python アプリケーションをプロファイリングすると、Visual Studio はプロセスの有効期間 (ミリ秒単位) のデータを収集します。

Visual Studio でプロファイリング機能の使用を開始するには、次の手順に従います。

  1. Visual Studio で、Python コード ファイルを開きます。

  2. Python コードの現在の環境が CPython ベースのインタープリターであることを確認します。 選択したインタープリターは、[ Python 環境] ウィンドウで確認できます。

  3. メイン ツール バーで、[デバッグ] を選択>Python プロファイルを起動します。 Visual Studio で [ プロファイル設定] ダイアログが開きます。

    Visual Studio の [プロファイル設定の構成] ダイアログのスクリーンショット。

  4. [ プロファイル設定] ダイアログで、プロファイルするコード ファイルまたはプロジェクト コードを選択します。

    • すべてのプロジェクト コードをプロファイリングするには:

      1. [ プロジェクトを開く] を選択します。

      2. ドロップダウン リストからプロジェクトを選択します。 この一覧には、現在の Visual Studio ソリューション内のすべてのプロジェクトが表示されます。

    • 特定のファイルをプロファイリングするには:

      1. スタンドアロン スクリプトを選択します。

      2. ドロップダウン リストから Python インタープリター を選択するか、場所を参照します。 一覧に含てられていないインタープリターを指定するには、ドロップダウン リストで [その他 ] を選択し、[ インタープリター パス] を指定します。

      3. スクリプト ファイルを特定するか、場所を参照します。

      4. 作業ディレクトリを指定するか、場所を参照します。

      5. スクリプトの コマンド ライン引数 を指定します。

  5. [スタート] を選択します

プロファイラーが実行され、Visual Studio でパフォーマンス レポートが開きます。 レポートを確認して、アプリケーションでの時間の使い方を調べることができます。

Visual Studio 2022 のプロファイル パフォーマンス レポートのスクリーンショット。

IronPython でプロファイラーを使用する

IronPython は、32 ビットバージョンと 64 ビット バージョンで利用できる Python の .NET 実装です。 IronPython は CPython ベースのインタープリターではありません。 Visual Studio では IronPython の標準的な Python デバッグがサポートされていますが、プロファイリング機能はサポートされていません。

IronPython プロジェクトの場合は、Visual Studio .NET プロファイラーを使用できます。 ipy.exe コマンドをターゲット アプリケーションとして直接実行し、適切な引数を指定してスタートアップ スクリプトを起動します。 コマンド ラインに -X:Debug 引数を含め、すべての Python コードをデバッグおよびプロファイリングできるようにします。 この引数は、IronPython ランタイムとコードに費やされた時間を含むパフォーマンス レポートを生成します。 コードは、 マングルされた名前を使用して識別されます。

IronPython にはいくつかの組み込みのプロファイリングが用意されていますが、現在、実行可能なビジュアライザーはありません。 詳細については、 IronPython ドキュメントの IronPython Profiler (ブログ) とデバッグとプロファイリング を参照してください。