問題タブ [xperf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - XPerf でアイドル時間 (およびネットワーク IO 時間など) を見つける方法は?
私が不自然なプログラムを持っているとしましょう:
目的: プロファイラーに、明らかな理由もなく待機してuseful_function()
いる不必要な呼び出しを教えてもらいたいです。useless_function()
XPerf では、自分のプログラムではなくへの呼び出しWaitForMultipleObjects()
が考慮されているように見えるため、これはどのグラフにも表示されません。Idle.exe
そして、これが私が現在実行している xperf コマンドラインです。
何か案は?
(これは待機関数に限定されません。上記の問題は、にブレークポイントを配置することで解決された可能性がありますNtWaitForMultipleObjects
。理想的には、CPU 時間だけではなく、多くのウォール クロック時間を消費しているスタック サンプルを確認する方法が存在する可能性があります)。
windows - wevtutil を使用して WPT マニフェストをインストールする際の問題
XPerf や GPUView などの Windows Performance Toolkit プログラムを使用してこれらを表示できるように、パフォーマンス カウンターとカスタム イベントをソフトウェアに追加しようとしています。ソフトウェアのドキュメントの状態や、Web から手がかりをつかもうとして無駄にしてしまった時間について、カタルシスのような暴言を吐き出すことは、自制のすべての力を使って差し控えるつもりです。これが他の失われた魂に役立つ場合に備えて、私がどのようにして現在の場所にたどり着いたかを説明します.
ここまでで、パフォーマンス カウンターとイベントのイベント マニフェストを作成する必要があることがわかりました。これは、手動で行うか、' ecmangen.exe 'というツールを使用して行うことができます。そのプログラムのドキュメントには、マニフェストを作成するイベントの段階的なガイドが記載されていますが、これらをコードに統合する方法については説明されていません。
私が理解できる限り、次のステップは、2 つの不可解なコマンド ライン アプリケーション ' MC.exe ' と ' CTRPP.exe ' を使用することです。これらは、C または C# のヘッダー、ソース ファイル、およびリソース ファイルを生成して、イベントおよびカウンター インストルメンテーションをコードにそれぞれ追加するようです。次に、コードをビルドする必要があります ('C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\winbase\Eventing' のサンプルを見てください)。次の不可解なツール ' wevtutil.exe ' の正しい使用
このツールには 2 つのものが必要です。これらのリソースを使用してコンパイルしたバイナリ (exe または DLL) と、それらのリソースを生成するために使用したマニフェスト ファイルです。私が抱えている問題は、バイナリ ファイルがどこにあるかについて非常にうるさいことです。呪文とヤギの生贄は何の成果ももたらさなかった。
「c:\MYDIR\TEd.exe」などのマニフェスト ファイルの「provider」タグの「resourceFileName」フィールドにパスが定義されていれば問題ありません。ただし、同じ exe を別のフォルダー (失敗したフォルダーは C:\tw\TEd.exe) に置くと、問題が発生します。
表示されるエラー メッセージは、「警告: パブリッシャー TEd-Event-Provider リソースにアクセスできません」です。しかし、なぜ、またはどこを見ようとしたのかについては、これ以上の説明はありません。
それで、私は間違った方法でインストルメンテーションを追加しようとしていますか、すべての落とし穴とディレクトリ名に対する「wevtutil.exeの奇妙な選択性の性質」を説明するガイドがすでにありますか.
前もって感謝します、
ティム。
windows - Windows PerformanceAnalyzerXperfからの統計を示す印刷可能なレポートの作成
これは非常に簡単な質問です。
Xperfを実行して、プログラムやアプリケーションなどの実行に関するすべての統計を取得します...
さて、Xperfのおかげで収集されたすべてのデータの印刷可能なレポートを作成できるツールを見つけたいと思います。
Xperfは、実際には、ディスク使用量、CPU使用率、時間、オーバーヘッドなどに関するすべてのデータと情報を表示させてくれます...しかし、それらを印刷させてはいけません...このようなことを行う方法は????
ありがとう。
.net - Windows Xperf diskio アクションで、パフォーマンス トレース セッション中にプログラムが読み取るファイルが表示されない
プログラムを実行すると、プログラムのトレース情報を取得するために xperf を実行します。プログラムはファイルを読み取ります。これは F# で記述された .NET プログラムであり、ファイルは次の場所で読み取られます。
良い。xperf を実行します。
xperf を停止し、ファイルにマージします。
わかった。
今私は書く:
これを行うのは、ファイルに関するすべての情報を含むファイルを取得できるようにするためです。表示されているファイルは、ファイルごとにディスク統計を表示できるようにフォーマットされたテキスト ファイルです。トレースセッション中に操作された各ファイルは、ファイルの読み取り/書き込みプロセスに関する多くのデータとともに表示されます...
しかし、MyReadFile.txt
そこには現れません。
どうして?????CPUのサンプリング周波数が低すぎるからでしょうか?どうすれば変更できますか? ...
ただし、私のプログラムはファイルを読み取ります。確かに、プログラムが起動して内容を出力します...
ありがとう
performance - XPerf のハード フォールトとは
XPerf を使用してシステムのプロファイルを作成しようとしています。また、 HardFaults にアクティビティがあると、パフォーマンスの問題が発生することを確認してください。
しかし、xperfが示すこれらのハードフォールトは何ですか。それらは何に関連していますか?彼らは何を示していますか?そのような状況に対する普遍的な救済策はありますか? ハードフォールト表
windows - xperfを使用してプロセスごとにアクセスされるファイルを一覧表示しますか?
xperfを使用すると、トレースを生成して、次のように読み取られたすべてのファイルの「フラット」リストを取得できます。
xperf -on FileIO + FILE_IO + FILE_IO_INIT + FILENAME -stackwalk FileRead + FileWrite + FileDelete
xperf -start FileIOSession -heap -PidNewProcess "C:\ Python27 \ x86 \ python.exe strikey.py" -WaitForNewProcess -BufferSize 1024 -MinBuffers 128 -MaxBuffers 512 -stackwalk HeapAlloc + HeapRealloc -f ./tempheap.etl
xperf -stop FileIOSession -stop -d fileio.etl
xperf -i fileio.etl -ofio_output.txt-aファイル名
残念ながら、fio_output.txtファイルには、(私のWebブラウザー、IDEなどから)アクセスされた可能性のあるすべてのファイルのリストが含まれています。さらに苛立たしいことに、xperfviewを手動で開いてファイルI / Oサマリーテーブルを開くと、プロセス(この場合はpython.exe)とそれが読み取る1つのファイル(テスト目的)を確認できますが、私が必要としているのと同じデータをCLIに出力する方法-ファイルアクセス情報を生成する無人の自動化された方法。
windows - Xperf(ETW)はドライバーのロード時間をどのように測定しますか?
Xperfを使用してWDFドライバーのロード時間を測定しています。何らかの理由で、ロード時間はかなり長く、最大1秒です。奇妙なことに、ドライバーからすべてのコードを削除しても、それはそのままです。
私の質問は、XPerf(またはより正確にはWindowsのイベントトレース)がドライブのロード時間をどのように測定するかということです。DriveEntryにかかる時間ではなく、バイナリの読み込みにかかる時間でもないことがわかります。ヒントはありますか?ありがとうございました。
c++ - xperfを使用してネットワークイベントを分析する
xperf-networkttrace
機能をテストするための小さなtcp-client/server-thingを作成しました。しかし、私はxperfで何か間違ったことをしたようです。Xperfカーネルグループを使用する場合、NETWORK
またはDIAG+NETWORKTRACE
「カジュアル」なものが表示され、tcp/udpについては表示されない場合-読み取りと書き込み...
xperfからこれらの情報を取得する方法の手がかりを得た人はいますか?(グーグルで本当に役立つものは見つかりませんでした)
windows - xperfview で DLL のシンボルをロードする際の問題
プロファイリングしているツールのシンボルを取得するために、xperf で歯と爪と戦ってきました。ツール内で実行される私のコードは、.exe と .dll に分かれています。プロファイリングする重要なものは .dll にあります。xperf を実行しました:
そして、ツールを少し実行してから、
次に、xperfview を試してみました。プロファイルをロードし、「シンボルのロード」をオンにして、サマリー テーブルを開きました。シンボルはまったくありません-文字通りモジュールは関数列で「不明」になりました。私はこれについて他のスレッドを精査しましたが、これが私が試したことです:
- 環境変数 _NT_SYMBOL_PATH および _NT_SYMCACHE を設定しました
- シンボル キャッシュをクリアし、xperf -symbols -i profile_results.etl を実行しました。
- 最近のバージョンの Windows Debugging Tools から dbghelp.dll をコピーし、上記を繰り返しました。
これをすべて実行した後、自分のコードではないほとんどのモジュールで関数名が正しく表示されるようになりましたが、dll を表示できません。dll はリリース モード (最適化あり) でコンパイルされていますが、特に pdb を作成するように Visual Studio プロジェクトを設定しました。pdb が存在し、_NT_SYMBOL_PATH のディレクトリ内にあることを確認しました。これを修正する方法、または少なくともさらにデバッグする方法を知っている人はいますか?