2017-11-25 19 views
0

「ロック・カウントは、」私はWinDbgのでクラッシュダンプを開いていて、私は!locksコマンドを使用するとき、私は3つのスレッドの出力を取得し、それぞれがそれらを意味し、どの「ロック・カウント」= 0はロック! - すべてのスレッドは= 0

を持っていますスレッドはオブジェクトを(私が理解しているものから)ロックしません。 この時点から、私が処理している問題の根本原因を調査するにはどうすればよいですか? (パフォーマンスシステムの障害)

私がデバッグしているコードには、管理コードとアンマネージコードが含まれています。

+0

Google「コードプロファイリング」 – mustaccio

+0

どのような問題をデバッグしようとしていますか?ハングアップ?アプリケーションのハングアップの原因は、ロックだけではありません。 – kvr

答えて

1

スレッド上のロック数が0の場合は、スレッド上で誰も同期していないことを意味します。スレッドがオブジェクトをロックしていないことを意味するものではありません。オブジェクトをロックすると、その情報がそのオブジェクトに保存されます(クリティカルセクション、ミューテックス、セマフォなど)。

一方では、ロックを探しているので、デッドロックが発生したと仮定できます。もう一方の側では、パフォーマンスについて言及します。これらの2つを区別するのは非常に簡単です。デッドロックが発生すると、それ以上の結果は得られません。プロセスのCPU使用率が0%に低下することもあります。パフォーマンス上の問題がある場合でも、結果は得られますが、もっと長く待つ必要があります。

クラッシュダンプファイルはデッドロックの問題を解決するのに役立ちますが、特にクラッシュダンプファイルが1つしかない場合はパフォーマンスの問題を解決するのに役立ちます。

パフォーマンスの問題を分析するには、パフォーマンスプロファイラを使用する必要があります。

関連する問題