Perfviewは、CPUとメモリ関連のパフォーマンスの問題を隔離するのに役立つ無料のパフォーマンス分析ツールです。 Windowsツールですが、Linuxマシンで収集されたデータを分析するためのサポートもあります。さまざまなシナリオで機能しますが、.NETランタイム用に記述されたコードのパフォーマンスの問題を調査するための多くの特別な機能があります。
Perfviewに不慣れな場合は、PerfViewビデオチュートリアルがあります。また、Vance Morrisonのブログは概要と情報を入手します。
Perfviewの現在のバージョンをダウンロードするリンクと手順については、Perfviewダウンロードページをご覧ください。
Perfviewには.NETフレームワーク4.7.2以降が必要です。これは、サポートされているすべてのバージョンのWindowsで広く利用可能です。
Perfviewは、Microsoft.diagnostics.tracing.traceEventというライブラリに構築されており、Windows(ETW)とEventPipe(.NET Core Trace)データのイベントトレースを収集および解析する方法を知っています。したがって、PerfViewがプログラムで自分自身を操作したい情報を収集して処理する情報がある場合は、おそらくTraceVentライブラリのドキュメントに興味があるでしょう。
シナリオドキュメントを参照して、どちらがやろうとしているかを決定します。
Perfviewユーザーガイドは、アプリケーション自体の一部です。さらに、ユーザーガイドリンクをクリックして、ブラウザでレンダリングされているGitHub HTMLソースファイルを確認できます。上記の手順を使用してPerfViewをダウンロードして、ヘルプ - >ユーザーガイドメニュー項目を選択することもできます。
PerfViewについて質問がある場合、最初の反応はユーザーガイド(ヘルプ - >ユーザーガイド)を検索し、すでに答えを見つけることができるかどうかを確認することです。それがうまくいかない場合は、新しいPerfViewの問題を作成することで質問することができます。タイトルにあなたの質問を簡潔に述べ、必要に応じて問題の本文に詳細を示している場合、「質問」と呼ばれる問題があります。質問が特定のトレース(*.etl.zipファイル)に固有の場合は、そのファイルを問題にドラッグできればダウンロードできます。これにより、問題を監視している人があなたの環境を再現し、より詳細で有用な答えを与えることができます。
質問に回答したら、問題が一般的である可能性が高い場合は、情報を含めるためにドキュメントを更新することを強く検討する必要があることに注意してください。ドキュメントは、ほんの1つのファイルhttps://github.com/microsoft/perfview/blob/main/src/perfview/supportfiles/usersguide.htmです。リポジトリをクローンしてプルリクエストを作成する必要があります(プルリクエストを設定および作成するための手順については、opensourcegitworkflowを参照してください。
報告バグは、質問をするのとほぼ同じように機能します。問題を再現するために必要な *.etl.zipファイル、および結果として得られる望ましくない動作を含める必要がある *.etl.zipファイルを含める可能性が非常に高いです。
パフォーマンス調査を行いたい場合は、PerfViewを自分で構築する必要はありません。 Perfviewダウンロードページから1つを使用してください。ただし、新しい機能が必要な場合、またはパフォーマーに貢献してそれを改善したい場合(人々が望むものの問題を参照してください)、これらの指示の残りに従うことでそれを行うことができます。
Perfviewを構築するために必要な唯一のツールはVisual Studio 2022です。VisualStudio 2022 Community Editionは無料でダウンロードでき、GitHubからPerfviewを取得し、ビルドしてテストするために必要なものをすべて備えています。 Visual Studio 2022がまだない場合は、Visual Studio 2022 Community Editionをダウンロードすることを期待しています。
Visual Studioのインストールでは、次のワークロードとコンポーネントがインストールされていることを確認する必要があります。
.vsconfigファイルは、必要なコンポーネントのインストールに使用できるリポジトリのルートに含まれています。 Visual Studioでソリューションを開くと、インストールから欠落していると思われるコンポーネントをインストールするように求められます。または、Visual Studioインストーラーに.vsconfigをインポートできます。
ETWCLRCOMPILERプロジェクトをコンパイルするエラーが発生した場合、Windows 10 SDKをインストールしていないか、スペクトルで開催されたLIBSをインストールしていないかどうかです。詳細については、トラブルシューティングセクションを参照してください。
Perfviewソースコードを開始する最初のステップは、PerfView GitHubリポジトリをクローンすることです。 Git、Github、およびVisual Studio 2022 Gitサポートの仕組みにすでに精通している場合は、このセクションをスキップできます。ただし、そうでない場合は、Visual Studio 2022ドキュメントを備えたローカルGitHubリポジトリをセットアップすると、これを行うことの基本が導かれます。それが想定しているのは、ビジュアルスタジオ2022がインストールされていることです。
Perfviewは、C#7.3を通じて機能を使用してVisual Studio 2022で開発されています。
ソリューションファイルはperfview.slnです。このファイルをVisual Studioで開き(またはWindows Explorerでダブルクリックします)、ビルド - >ビルドソリューションを選択するとビルドします。また、MSBuildまたはリポジトリのベースにあるbuild.cmdファイルを使用して、コマンドラインから非bugバージョンを構築することもできます。ビルドは標準のビジュアルスタジオコンベンションに続き、結果のperfview.exeファイルはsrc/perfview/bin/ buildtype /perfview.exeになります。使用するには、このexeのみを展開する必要があります。
このソリューションは、サポートDLLとメインエスクを表すいくつかのプロジェクトで構成されています。デバッガーでPerfViewを実行するには、「スタートアッププロジェクト」が「PerfView」プロジェクトに設定されていることを確認する必要があります。ソリューションエクスプローラーのPerfviewプロジェクト(右側)が大胆でない場合は、Perfviewプロジェクトを右クリックして、[スタートアッププロジェクトとして設定]を選択します。これを行った後、「デバッグを開始」(F5)は機能するはずです。
Perfviewの「デバッグ」バージョンではなく、「リリース」を展開する必要があります。したがって、最初にビルド構成を「リリース」に設定します(トップツールバーのテキストウィンドウ、または.slnファイル - >構成マネージャー - >アクティブソリューション構成を右クリックします)。次のビルド(ビルド - >ビルドソリューション(ctrl-shift-b))。その結果、src perfview bin net462 リリースディレクトリには、とりわけperfview.exeがあります。この1つのファイルは、展開するために必要なすべてです。アプリを展開する場所にコピーするだけです。
PerfViewの珍しいことの1つは、サポートDLLをEXE自体に組み込んでおり、これらは最初の起動時に開梱されることです。これは、ビルドに典型的ではないトリッキーな依存関係があることを意味します。ビルドの前半でビルドの問題が発生した場合、特定のDLLが見つからないというエラーが表示されます。通常、不足しているファイルが最後のコンピレーションから存在するため、通常の(クリーン以外の)ビルドを実行するだけでこれを修正できます。これで物事が修正されない場合は、DLLが実際に存在するかどうかを確認します(もしそうなら、再構築はそれを修正するはずです)。プロジェクトを1つずつ下げて、個別に構築して、どれが最初に失敗したかを確認することは理にかなっています。
PerfViewのもう1つの珍しいことは、サンプルを備えた拡張メカニズムが含まれていることです。この拡張メカニズムは、「グローバル」プロジェクト(コマンドが明示的な「スコープ」を持たないグローバル拡張機能であるため)であり、その参照の一部を解決するためにPerfViewを参照する必要があります。したがって、「グローバル」プロジェクトで多くの「発見されていない」問題が発生します。これらは、ビルドの他のすべての部分を動作させるまで無視できます。
リポジトリの不満の1つは、Visual Studio 2022を実行していて、Perfview.slnファイルを同期して構築するだけで、「単なる作業」と思われることです。それが起こらず、上記のアドバイスが役に立たない場合は、リポジトリを修正するか、上記のアドバイスを更新する必要があります。したがって、githubの問題を開くことは合理的です。これを行う場合、目標は問題を修正することです。つまり、それを行うために十分な情報を問題に入れる必要があります。これには、試したものとエラーメッセージが何であるかが含まれます。
コマンドラインからPerfViewを構築することもできます(ただし、Visual Studio 2022をインストールする必要があります)。 2段階のプロセスです。最初に、必要なすべてのNugetパッケージを復元する必要があります。次に、ビルド自体を実行します。これを行うには:
「MSB8036:Windows SDKバージョン10.0.17763.0が見つかりませんでした」というエラーが発生した場合、または「Assert.h」が見つかりませんでした。残念ながら、このライブラリは、明示的に要求しない限り、Visual Studioで設置されなくなる傾向があります。それを修正するには、Visual Studioインストーラーを起動し、インストールを変更してから、C ++デスクトップ開発の下を調べ、Windows SDK 10.0.17763.0オプションが選択されていることを確認します。そうでない場合は、それを選択して続行します。次に、PerfViewをもう一度作成してみてください。
「MSB8040:Spectre-Mitatedライブラリがこのプロジェクトに必要なエラー」が発生した場合は、Visual Studioのインストールを変更して、「MSVC V143-vs 2022 C ++ X64/X86 Spectre-Mitigated LIBS(最新)」コンポーネントを設置していることを確認してください。
Perfviewには、自動テストがある *テストプロジェクトが多数あります。テスト - >実行 - >すべてのテストメニュー項目を選択することにより、Visual Studioで実行できます。最も徹底的な結果を得るには(そして確かに変更を送信するつもりなら)、製品のデバッグビルドでこれらのテストを実行する必要があります(トップツールバーのテキストウィンドウを参照して、「デバッグ」または「リリース」と書かれています)。テストが失敗した場合、失敗したテストを右クリックして、「デバッグ」コンテキストメニュー項目を選択して、デバッガーの下でテストを実行して、何がうまくいかなかったかを把握できます。
このリポジトリは、Azure DevOpsを使用して、プルリクエストを自動的に構築およびテストするため、コミュニティはビルド結果を簡単に表示できます。ここに反映されるビルドとステータスは、メインブランチのAzure DevOpsビルドステータスです。
ショ和 Azure DevOps CIによって生成されたビルドは、Perfviewの公式ビルドとは見なされず、安全またはセキュリティのために署名または検証されていません。このビルド統合は、コミュニティの参加者にとって便利なものとして提供されますが、Microsoftによって承認されていないことも、公式リリースチャネルとは見なされません。公式ビルドの詳細については、PerfViewのダウンロードページを参照してください。
単にコードを自分で構築したり、デバッグしたり、ローカルの専門的な機能を作成したりすることで、ソースコードベースから多くの価値を得ることができますが、共有コードベースに戻り、コミュニティ全体を支援すると、オープンソースソフトウェアの本当の力が発生します。私たちはこれを奨励していますが、あなたの側では大幅に多くの努力が必要です。ステップアップに興味がある場合は、開始する前にPerfView Contribing GuideとPerfViewコーディング標準を参照してください。
コードはいくつかの主要なセクションに分かれています。