問題タブ [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 - DLL が使用するレジストリ エントリとファイルを表示する
私は Windows プロセスの分析にまったく慣れていませんが、先週、Xperf が非常に便利であることに気付きました。また、DLL の分析についていくつか質問があります。
プロセスによって使用される特定の DLL イメージによって使用されるレジストリ エントリとファイル パスを確認できるかどうか、およびこれを実現できるツールを確認できるかどうか疑問に思っていました。
これが不可能な場合、DLL が使用しているリソースを見つけるための適切な戦略、または代替アプローチは何かと考えていました。
debugging - Xperf / WPR 自動停止方法
進行中の循環トレースを停止できるパフォーマンス カウンターとしきい値を定義することは可能ですか? トレースの無人停止の他の可能性は?
windows - Xperf でコールスタックとイベントをキャプチャする
ばかげた質問で申し訳ありません。私はXperfを初めて使用します。
私は 64 ビットの Windows 8.1 を使用しており、アプリケーションも x64 です。Xperf を使用して、アプリケーション内のコールスタックと定義済みイベントの両方をキャプチャしたいと考えています。
35f7872e-9b6d-4a9b-a674-66f1edd66d5c
アプリケーションに GUID を登録しました。
私が使用していたとき:
すべてのイベントを取得できますが、コールスタックは取得できません。ただし、削除する-on 35f7872e-9b6d-4a9b-a674-66f1edd66d5c
とコマンドラインは次のようになります。
このようにして、すべてのコールスタックをキャプチャできますが、定義されたイベントはキャプチャできません。
コールスタックとイベントの両方をキャプチャするために使用する正しいコマンド ラインを誰か教えてもらえますか? また、良い Xperf リファレンスを教えていただければ、さらに役に立ちます。
c++ - KCacheGrind などの WPR/xperf プロファイリング データからの関数呼び出しの集約?
WPR/xperfプロファイリング データをKCacheGrindにロードすることは可能ですか? または、 WPAで関数呼び出しを直接集約する方法はありますか? それとも他のツール?gprof2dot /graphvizルートが最良の選択肢でしょうか?
WPA は便利だと思いますが、「CPU 使用率 (サンプリング)」テーブルでスタックごとにグループ化すると、集計された関数呼び出し数で並べ替えることができないようです。たとえば、関数foo
が 10 の異なる場所から均等に呼び出された場合foo
、10 のコード パスのそれぞれがfoo
10% 以下の重みとして表示されるため、潜在的なボトルネックとして特定するのは困難です。KCacheGrind は、各関数の累積時間でソートできるようにすることで、この問題を解決します。
たとえば、malloc のような低レベルの共有関数をボトルネックとして特定するために、Windows でプロファイリングを使用して各関数で費やされた累積時間で並べ替えるにはどうすればよいですか?
node.js - xperf を使用して nodejs のコール スタックを調べる方法は?
Node.js アプリケーションのパフォーマンス チューニングを学ぼうとしています。私が最初に欲しいのはフレームグラフです。私は Windows プラットフォームで作業しているので、このマニュアルに従ってフレームグラフを取得します。
しかし、私はこの段階でスタックしています:
xperf -i perf.etl -o perf.csv -symbols
私はxperfが苦手です。この問題を解決してフレームグラフを取得する方法を誰かに教えてもらえますか?
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 パフォーマンス アナライザーに読み込むことができません。:(
何か案は?
udp - WPA は、NIC ドライバー DPC フラグメントが 232 ミリ秒間実行されていることを示しています
8 つの論理 CPU を搭載したマシンで UDP プロキシのストレス テストを行っています。UDP クライアント数が約 14,000 になると、CPU の 1 つ (CPU 4) が急上昇し始め、UDP スループット (タスク マネージャーで表示) がゼロに落ち込みます。私は WPR を使用してスパイク時の CPU 使用率を記録しました。WPA は、CPU 4 が他のすべての CPU (それぞれ約 5K) の 2 倍の DPC/ISR フラグメント (約 11K) を処理していることを示しています。最長の DPC フラグメントは 232 ミリ秒実行され、次の 5 つの DPC フラグメントはすべて 100 ミリ秒以上実行され、次の 57 は 1 ~ 90 ミリ秒で実行されました。
フラグメントは、「DPC または ISR が中断されずに実行された期間」として定義されます。( https://msdn.microsoft.com/en-us/library/windows/hardware/jj679884.aspxを参照)
Microsoft は、DPC フラグメントを 100 マイクロ秒以内で実行することをお勧めします! ( https://msdn.microsoft.com/en-us/library/windows/hardware/ff546551(v=vs.85).aspxを参照)
bxvbda.sys はモジュール (Broadcom NetXtreme II GigE VBD) であり、um_bdrv_dpc はこれらすべての実行時間の長い DPC フラグメントの関数です。
私の質問は、DPC の WPA データを正しく解釈していますか?
etw - WPA でのスレッド数のグラフ化
プロセス内のスレッド数をグラフ化したいのですが、ThreadID 列を見つけて、時間をかけて確認したい Unique Count 集計を設定しました。青いバーの右側にこのフィールドだけがありますが、グラフは表示されません (はい、凡例の色を選択しました)。
これはどのように可能ですか?