2009-03-30 12 views
4

システムの処理速度が非常に悪いアプリケーションをデバッグしています。アプリケーションは、ローカルハードディスクから大量のデータ(約半分の約1000ファイル)をロードします。ファイルはメモリマップファイルとしてロードされ、必要なときにのみマップされます。つまり、任意の時点で、仮想メモリの使用量は300 MBを超えません。アプリケーションとシステムが減速する原因は何ですか?

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

2-3回のロードアンロードサイクルの後、1回のロード中にシステムが非常に遅くなります。私はこの時点でアプリケーションの仮想メモリ使用量とハンドル数をチェックしていましたが、限界内でした(VMは約460MBで断片化もあまりなく、3200を処理します)。

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

私がシステムを意味するとき、それは減速しているウィンドウ全体です。タスクマネージャー自体は2分かかるため、ハードリブートが必要です。

+0

もっと具体的に言えば、私がシステムを意味するとき、それは減速しているウィンドウ全体です。タスクマネージャー自体は2分かかるため、ほとんどの場合、ハードリブートが必要です。 – Canopus

答えて

0

「IBM Rational Quantify」や「Intel VTune」などのツールを使用してパフォーマンスの問題を検出します。
[編集]
Benoîtのように、1つの良い意味は、CPUを食べているかを識別するための作業時間を測定することです。
しかし、多くのファイルを扱っているので、メモリがディスクスワップする原因となる可能性があります。

0

あなたはプロファイラを持っていない場合、あなたは手で同じ作業を行う必要があります...

は、あなただけのスローダウンが消えたかどうかを確認するために、すべての読み取り/書き込み操作をコメントアウトしたことがありますか? "分割して征服する"戦略は、問題がどこにあるのかを見つけるのに役立ちます。

0

IDEで実行する場合は、実際の速度が遅くなるまで実行してから、「一時停止」ボタンを押します。時間がかかることは何でもするという行為でそれを捕まえることになります。

0

タスクマネージャが起動するのに2分かかる場合、ディスクのアクティビティが増えていますか?またはそれはCPUにバインドされていますか?

私はsysinternalsからプロセスエクスプローラを試してみます。あなたのシステムが減速した状態で、メモ帳などを実行しようとすると、ページ違反デルタに注意してください。あなたはこの時点で使用することができます

1

ツール:私の経験で

  • のPerfmon
  • イベントビューア

物事がポップアップからタスクマネージャを防ぐシステムに発生したとき、彼らは」通常はハードウェアのバラエティ - イベントビューアのシステムイベントログを確認すると、一部のハードウェアデバイスがタイムアウトしたときに警告またはエラーが発生することがあります。

イベントビューアで、どのような種類のログ可能なハードウェアエラーによって減速が発生していると表示されない場合は、Perfmon - システムオブジェクトのカウンタを追加して、ファイルの読み取り、例外、コンテキストスイッチなどを追跡します。そこに何かがあるかどうかを確認してください。

実証された振る舞いは、ユーザーモードコードが原因で設計上不可能であることを意味しています。 WinNTは、アプリケーションを互いに隔離し、不正なアプリケーションがシステムを使用できなくするのを防ぐために、多くの努力をしています。だから私の疑惑は何らかのハードウェア障害であると非難することです。別のPCで簡単に同じテストを実行できる可能性はありますか?

1

システム全体が遅くなるという事実は非常に面倒です。つまり、プロファイラを簡単に取り付けることはできないということです。結果を見るためにプロファイリングセッションを停止することさえ困難であることを意味しますハードリブートが必要です)。このような状況で仕事に適し

最適なツールは、ETW(Windowsのイベントトレーシング)で、これらのツールは素晴らしいです、あなたが

を探している正確な答えを与えるだろう、ここで

それらをチェックアウトhttp://msdn.microsoft.com/en-us/library/cc305210.aspxhttp://msdn.microsoft.com/en-us/library/cc305221.aspxhttp://msdn.microsoft.com/en-us/performance/default.aspx

はこの作品を願っています。 ありがとう

0

Windowsはファイルデータのキャッシュについて非常に貪欲です。誰かが提案したようにファイルI/Oを削除しようとしました。また、ファイルの処理が終了したら直ちにファイルマッピングを閉じるようにしています。 特にOSと同じディスク上にファイルがある場合、I/Oが減速の原因になっている可能性があります。テストする別の方法は、ファイルを別のディスクに移動して問題を緩和するかどうかを確認することです。

関連する問題