問題タブ [windows-performance-analyzer]
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.
.net - CLR ETW イベントを表示する方法
特に CLR ETWイベントを表示するために使用できるツールがあるかどうか疑問に思っていました。つまり、一般的なグラフを使用してWPAの一般的なイベント セクションに表示されるのではなく、「適切な」グラフを表示します。
WPAで .etl トレース ファイル (たとえば、perfmonitor.exeまたは WPR で作成) のトレースを開くと、GUID とイベント ID (CLR イベントの場合) しか得られないので、これらをより便利に解決する方法があるかどうか疑問に思っていました。 WPA の名前、またはそのようなイベント トレースを表示できる別のツールがある場合。perfmonitor.exe は、JIT、GC、および CPU のみに焦点を当て、(私の知る限り) 他のイベントを無視するため、部分的にしか役に立ちません。
performance - 別のマシンで xperf ETL ファイルを表示中にエラーが発生しました
Windows 8.1 と ADK (xperf 6.3.9600) がインストールされたマシンがあります。
Windows 7 SP1 と 8.1 ADK (xperf 6.3.9600) がインストールされた別のマシンがあります。
xperf を使用して 8.1 マシンでトレースを生成すると、そのトレースを Win7 マシンにロードできません。それは私にエラーを与えるThe file or directory is corrupted and unreadable. (0x80070570).
ETL ファイルは、それを生成したマシンと、Windows 8.1 を実行している別のマシンに正常にロードできます。
トレース ファイルを生成した OS と同等またはそれ以上の OS でのみ、トレース ファイルをロードできますか? 同じ xperf/WPA バージョンを必要としないのはなぜですか? それとも、これは他の人にも有効で、私が見落としているものがありますか?
c++ - KCacheGrind などの WPR/xperf プロファイリング データからの関数呼び出しの集約?
WPR/xperfプロファイリング データをKCacheGrindにロードすることは可能ですか? または、 WPAで関数呼び出しを直接集約する方法はありますか? それとも他のツール?gprof2dot /graphvizルートが最良の選択肢でしょうか?
WPA は便利だと思いますが、「CPU 使用率 (サンプリング)」テーブルでスタックごとにグループ化すると、集計された関数呼び出し数で並べ替えることができないようです。たとえば、関数foo
が 10 の異なる場所から均等に呼び出された場合foo
、10 のコード パスのそれぞれがfoo
10% 以下の重みとして表示されるため、潜在的なボトルネックとして特定するのは困難です。KCacheGrind は、各関数の累積時間でソートできるようにすることで、この問題を解決します。
たとえば、malloc のような低レベルの共有関数をボトルネックとして特定するために、Windows でプロファイリングを使用して各関数で費やされた累積時間で並べ替えるにはどうすればよいですか?
performance - xperf (Windows Performance Toolkit) を使用して CPU 使用率のサンプリングを収集する方法
長いプロセス (6 ~ 8 時間) のパフォーマンスを分析したい。作成/終了したプロセス (コマンド ラインを使用) と CPU 使用率に関する情報が必要です。
Windows Performance Analyzer (wpa.exe/xperfview.exe) は分析に最適なツールであることがわかりました。パフォーマンス データ コレクターを作成し、プロバイダー 'Windows Kernel Trace'、キーワード 'process' を選択して、プロセスに関する情報を取得しました。
しかし、サンプリングで CPU 使用率に関する情報を収集する方法が見つかりません。そんなこと知ってる
xperf.exe -on ベース
CPU 情報を収集しますが、情報が多すぎます...
また、パフォーマンス カウンターで CPU 使用率を *.blg ファイルとして収集できますが、このファイルを Windows パフォーマンス アナライザーに読み込むことができません。:(
何か案は?
etw - WPA でのスレッド数のグラフ化
プロセス内のスレッド数をグラフ化したいのですが、ThreadID 列を見つけて、時間をかけて確認したい Unique Count 集計を設定しました。青いバーの右側にこのフィールドだけがありますが、グラフは表示されません (はい、凡例の色を選択しました)。
これはどのように可能ですか?
etw - Windows パフォーマンス アナライザーがクラッシュする
私は、過去 1 か月前に WPRUI および WPA アプリケーションを正常に使用して、C++ アプリケーションのパフォーマンスの問題を特定しました。しかし、今日、そのうちの 1 つの新しいトレースを記録し、それを開いて WPA がクラッシュしていることを確認しました。ETL を開き、Graph Explorer -> Computation -> CPU Usage (sampled) -> unfold に移動することで、毎回再現可能です。クリックするだけで、CPU サンプリング グラフ リストが表示されます。サイレントにクラッシュすることもあれば、クラッシュをデバッグできるダイアログが表示されることもあります。このような問題を経験した人はいますか?Windows Performance Toolkit サイトにサポート フォーラムがありません。もちろん、これに対する解決策を見つけたいと思っています。事前に感謝します。
PS: 再インストールしても意味がありません。ユーザー設定の削除も同様です。スタックは、「タスク」クラスで範囲外のメモリにアクセスする問題のみを示しましたが、デバッグダイアログを再度表示することはできません (毎回サイレントにクラッシュしています)。
PS2: この 1 か月で覚えている唯一の重要な変更は、Visual Studio 2015 の CTP をインストールし、保留中のパッケージを Windows でアップグレードできるようにしたことです (私は上限のあるサブネットワークにいて、Windows は自動的にアップグレードしません)。 )。
callstack - 「ジェネリック イベント」のコール スタックがないのはなぜですか
私は読んだ
および他のソースですが、私がやりたい最も簡単なことは、WPA の "Generic events" グラフに "Stack" 列を表示することです。
なぜそこにないのですか?確かに、スタック情報が利用できないためですが、なぜですか? 「xperf -help stackwalk」は知っていますが、リストされているものは探しているものではありません。例えば、
ネットワーク イベントのコールスタックを取得できません。なんで?私は何かが欠けているに違いない。ありがとう!
etw - WPA 「詳細を表示するには Alt + Space を押してください」
Windows パフォーマンス アナライザーのグラフ ビューでデータ ポイントにカーソルを合わせると、"詳細を表示するには Alt + Space を押してください" という小さなポップアップ ウィンドウが表示されます。しかし、そうすると、復元、最小化、最大化、および閉じるオプションを提供するダイアログである、すべてのウィンドウに共通の最上位のダイアログが表示されます。
https://msdn.microsoft.com/en-us/library/windows/hardware/dn450837.aspxの「WPA キーボード ショートカット」ページでは、「Alt + スペース」について言及されていません。google、bing、またはアヒルのダックも検索に行きません。
古い xperfview では、データ ポイントにカーソルを合わせると、そのデータ ポイントに関連付けられたすべてのデータが表示されます。WPAでそれを行うにはどうすればよいですか?