次の方法で共有


perfmon を使用してメモリ リークが存在するかどうかを判断する

Windows のパフォーマンスが徐々に低下していて、メモリ リークが関係していると思われる場合は、Windows パフォーマンス モニターを使用して、メモリ リークがあるかどうかを調べます。 このプロセスでは、リークの原因や、ユーザー モードとカーネル モードのどちらであるか、といったことは示されません。

まず、パフォーマンス モニターを起動します。 パフォーマンス モニターを開くには、次のいずれかの手順を使用します。

  • [スタート] メニューを開き、パフォーマンス モニターを検索して、結果をクリックします
  • Windows Key + R キーボード ショートカットを使用して [実行] コマンドを開き、「perfmon」と入力し、[OK] をクリックして開きます。

カウンターの追加

パフォーマンス モニターを開いた後、パフォーマンス モニターのメイン グラフに次のカウンターを追加します。 [モニター ツール] の下の [パフォーマンス モニター] を右クリックして、[プロパティ] を選択します。

  • Memory --> Pool Nonpaged Bytes

  • Memory --> Pool Paged Bytes

  • Paging File --> % Usage

アクティビティをキャプチャするための期間を設定する

リークのグラフを経時的にキャプチャするには、[サンプリング間隔] を 600 秒に設定して、10 分ごとに値を測定します。 アクティビティをキャプチャするのに十分な [期間] を設定します。 たとえば、24 時間に設定するには、値は 60*60*24 = 86,400 になります。後で調べるため、データをファイルに記録することもできます。

アプリケーションの起動と監視

リークの原因と思われるアプリケーションまたはテストを開始します。 アプリケーションまたはテストを、しばらくそのまま実行させておきます。この間に、ターゲット コンピューターを使用しないでください。 通常、リークは遅く、検出に数時間かかる場合があります。 数時間待ってから、リークが発生したかどうかを判断します。

パフォーマンス モニターのカウンターを監視します。 テストを開始すると、カウンターの値がめまぐるしく変化し、メモリ プールの値が安定した状態になるまでしばらくかかる場合があります。

ユーザー モードのメモリ リークは常にページング可能なプールで発生し、Pool Paged Bytes カウンターとページ ファイルの Usage カウンターの両方が、時間の経過と共に着実に増加します。 カーネル モードのメモリ リークでは、通常、非ページング プールが使い果たされ、Pool Nonpaged Bytes カウンターが増加しますが、ページング可能メモリも影響を受ける可能性があります。 アプリケーションによるデータのキャッシュのため、これらのカウンターが擬陽性を示すことがあります。