3

2 つの質問があります。

  1. DisablePagingExecutiveを使用するときに設定する必要があるというブログエントリを見つけましたxperf

    http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx

    Paging Executive を無効
    にする 64 ビット Windows でトレースを機能させるには、DisablePagingExecutiveレジストリ キーを設定する必要があります。これは、カーネル モード ドライバーとシステム コードをディスクにページングしないようにオペレーティング システムに指示します。これは、xperf を使用して 64 ビット コール スタックを取得するための前提条件です。 xperf スタック ウォーク コードは、ページ アウトされたページにアクセスできません。

    xperfこれは、64 ビット Windows で実行されている 32 ビット アプリケーションのデータを収集するために必要ですか?

  2. xperf64 ビット OS で 32 ビット プロセスのデータを収集する場合、x86 または x64 バージョンを使用する必要がありますか?

4

3 に答える 3

6

64 ビット Windows を使用している場合は、DisablePagingExecutive を 1 に設定し、64 ビット バージョンの WPT を使用する必要があります。

32 ビット バージョンは 64 ビット Windows にはインストールされないため、64 ビット バージョンの WPT が必要です。

32 ビット プログラムでも 64 ビット カーネルを呼び出すことができるため、DisablePagingExecutive を 1 に設定する必要があります。カーネル コードを含む完全なコール スタックを取得するには、DisablePagingExecutive を設定して、メタデータをページング不可能なメモリにロックする必要があります。

設定するだけです。それほどコストはかからず (メモリを少し多く使用します)、設定しておけば心配する必要はありません。

これを設定する最も簡単な方法は、トレース記録 UI を使用することです。wprui は 1 つの選択肢 (Windows Performance Toolkit に同梱されています) ですが、私は UIforETW を好みます。詳細はhttps://randomascii.wordpress.com/2015/09/24/etw-central/

于 2013-12-14T05:38:18.627 に答える
0

WPT の 64 ビット バージョンを使用する必要があり、DisablePagingExecuteを 1 に設定する必要があります。

于 2013-06-28T06:12:09.940 に答える