4


1

私は*システム*を非常に遅くするアプリケーションをデバッグしています。 アプリケーションは、ローカルのハードディスクから大量のデータ(各半分のMBに約1000ファイル)をロードします。これらのファイルは、メモリマップファイルとしてロードされ、必要なときにのみマップされます。 これは、仮想メモリの使用量が任意の時点で300 MBを超えないことを意味します。

sysinternalsのhandle.exeを使用してハンドル数を調べたところ、最大で8000個の奇数ハンドルが開かれていることがわかりました。 データがアンロードされると、約400に低下します。 各ロードおよびアンロード操作の後にハンドルリークはありません。

2-3ロードアンロードサイクル後、1つのロード中に、システムは非常に遅くなります。 この時点で、アプリケーションの仮想メモリ使用量とハンドル数を確認しましたが、これは制限内で十分でした(VMは約460 MB、断片化もそれほどありません、ハンドル数は3200です)。

アプリケーションがシステムの応答を非常に遅くする方法を知りたい このシナリオをデバッグするために他にどのようなツールを使用できますか?

私がより具体的に言うと、私がシステムを意味するとき、それは減速しているのは窓全体です。 タスクマネージャ自体が起動するまで2分かかり、ほとんどの場合、ハードリブートが必要です。

7 Answer


1


この時点で使用できるツール:

  • 演奏者

  • イベントビューアー

私の経験では、タスクマネージャがポップアップ表示されないようなシステムに問題が発生した場合、それらは通常ハードウェアの種類に分類されます。でる。

イベントビューアでログに記録できるハードウェアエラーがスローダウンを引き起こしていることを示していない場合は、Perfmonを試してください - システムオブジェクトのカウンタを追加してファイルの読み取り、例外、コンテキストの切り替えなどを追跡します。 毎秒とそこに明白な何かがあるかどうかを確認してください。

率直に言って、示されているような振る舞いは、ユーザーモードのコードが引き起こすことを(意図的に)不可能にすることを意味しています。 WinNTは、アプリケーションを互いに隔離し、不正なアプリケーションがシステムを使用できなくするのを防ぐために、多大な努力を払っています。 だから私の疑いは、ある種のハードウェアのせいであると思います。 別のPCで同じテストを簡単に実行できる可能性はありますか?


1


システム全体が遅くなるという事実は非常に厄介です。プロファイラを簡単に接続できないことを意味します。また、結果を表示するためにプロファイリングセッションを停止するのは難しいことも意味します。 )

このような状況での仕事に最適なツールはETW(Windows用イベントトレース)です。これらのツールは素晴らしいです、あなたが探している正確な答えをあなたに与えるでしょう

こちらからチェックしてください

これがうまくいくことを願っています。 ありがとう


0


パフォーマンスの問題を検出するには、「IBM Rational Quantify」や「Intel VTune」などのツールを使用します。

Benoîtがしたように、1つの良い方法は、どれがCPUを食べているかを識別するためにタスク時間を測定することです。 しかし、あなたが多くのファイルを使って作業しているので、メモリがディスクスワップする原因になっているはずがないことを忘れないでください。


0


プロファイラがない場合は、同じ作業を手作業で行う必要があるかもしれません。

スローダウンが消えるかどうかを確認するためだけに、すべての読み取り/書き込み操作をコメントアウトしてみましたか? 「分割統治」戦略は問題がどこにあるか見つけるのを助けるでしょう。


0


あなたがIDEの下でそれを実行するならば、それが本当に遅くなるまでそれを実行してください、そして次に「一時停止」ボタンを押してください。 あなたはそれをそれほど長い時間がかかるものは何でもするという行為でそれを捕らえるでしょう。


0


タスクマネージャが起動するのに2分かかる場合、あなたはたくさんのディスクアクティビティを得ていますか? それともCPUバウンドですか?

私はsysinternalsからプロセスエクスプローラを試してみます。 システムがスローダウン状態になっているときに、メモ帳などで実行しようとすると、ページフォルトデルタに注意してください。


0


Windowsはファイルデータのキャッシュに関して非常に貪欲です。 私は誰かが提案したようにファイルI / Oを削除することを試みるでしょう、そしてまたあなたがファイルを使い終わったらすぐにあなたがファイルマッピングを閉じることを確認すること。 特に、ファイルがOSと同じディスクにある場合は、I / Oが原因で速度が低下する可能性があります。 それをテストするもう1つの方法は、ファイルを別のディスクに移動し、それが問題を軽減するかどうかを確認することです。