0

VS2010内でデバッグしている間、プログラムは当然、そうでない場合よりも実行速度が大幅に低下します。

ただし、最近、ListBoxの値を更新している場合、プログラムの実行速度は何とも言えないほど遅くなります。(他のコントロールも影響を受ける可能性がありますが、よくわかりません...しかし、ListBoxは確かなものです)。

リストボックスに100個の要素を追加するなど、デバッガーの外部でほんの一瞬で発生する操作は、VS内で3〜5分かかる場合があります。

明らかに、これは通常の動作ではありません。

これがいつ始まったかはわかりませんが、常に起こっているわけではありません。それは数ヶ月前に起こり始めました。たぶん、サービスパックをインストールしたときですか?わからない。

プロセスを見ると、msvsmon.exeがCPUをかみ砕いています。

私が変更した可能性のあるオプションがどこかにある場合、これを引き起こすアイデアはありますか?8,000個の要素を含むListBoxを使用して何かをデバッグしようとしていますが、それは完全に不可能です。

Windows 7 x64、4GB RAM、VS2010-SP1

4

3 に答える 3

3

はい、出力ウィンドウに多くのSystem.InvalidCastExceptionsが表示されます

これが速度低下の原因であり、デバッガーは例外を処理するときに多くの作業を行います。特に、現在使用しているリモートデバッガーは、プロジェクトのプラットフォームターゲットがAnyCPUであるため必要であり、出力ウィンドウに通知メッセージを追加するのは安価ではありません。

この問題は無視できません。単なるデバッガアーティファクトではありません。デバッグ+例外、CLR例外のスローボックスにチェックマークを付けます。例外がスローされると、デバッガーが停止するようになりました。そのコードを修正する必要があります。

于 2012-05-24T03:55:47.410 に答える
1

問題は、VS2010がブレークポイントを処理する方法にある可能性があります。このリンクを見てください:

2つの興味深いメモ:

  • シンボルの検索は、デバッグの開始時に非常に遅くなることがよくあります。特に、リモートシンボルオプションの1つが構成されていて、MSサーバーにシンボルがないさまざまなDLLに「無視」を設定していない場合はそうです。

..。

  • はい、64ビットプログラムをデバッグするときにmsvsmon.exeが使用されます。Visual Studioは完全に32ビットであるため、分割をブリッジするにはリモートデバッガーが必要です。....pdbファイルを見つけてロードするために力強く作業する可能性があります。または、誤って混合モードのデバッグオプションをオンにして、デバッガーがすべてのアンマネージDLLロードを確認し、それらのシンボルを見つけているようにします。もちろん、これらは単なる推測です。
于 2012-05-24T03:47:09.300 に答える
0

速度低下のもう1つの原因-ブレークポイントへのヒットごとに条件を評価する必要があるため、条件付きブレークポイント。長いループ内の条件に対して「false」を持つブレークポイントがあると、デバッグが大幅に遅くなります。

于 2012-05-24T03:53:44.507 に答える