2008年12月20日

VC++2005EEの動作が遅い

以前、WiresharkをVC++でデバッグしてみるで書いたが、VC++でWiresharkをデバッグしていると、フリーズするぐらいIDEの動作が遅くなる現象に出くわすことが度々あった。
Core Duo 1.66GHzで、メモリも3GB積んでいるから、そんなにポンコツマシンでもないのだが、なんでだろう。

1つの原因は、Wiresharkのソースツリーをネットワークドライブに置いているせいだろう。
ビジネス向けのPCは、HDDの容量が少ないことが多い。私が会社で使っているものは40GBしかない。
パーティション切って、Linux用に15GB割り当てているから、何かとディスクを消費するWindows用には25GBしか残っていない。
これではデータをローカルに置いておくには少な過ぎる。
Wiresharkプロジェクトは、フルビルドするには1GB弱のディスクを消費するから、リモートに置くしか選択肢がない。
ローカルディスクには、パブリックに公開するわけにいかない情報をTrueCryptの暗号化ドライブに入れて保存している。

もう1つ。VC++のステータスバーに「IntelliSenseを更新中」という文字列が出ているのに気づいた。
一度更新が完了しても、VC++を再立ち上げすると、再度更新を始めたりするようだ。
これは、ネットワークドライブにモノを置いているのも影響しているのだろうか。

IntelliSenseを無効にしたらいいだろうと思って、調べてみると、今日のワンポイント : 既定で IntelliSense を無効にする方法 - #098というのが出てきたが、この通りやっても、IntelliSenseを更新する現象は変わらない。
IntelliSenseを無効にしているのだらか、IntelliSense用のデータベースを更新する必要はないだろうと思うのが常識的発想と思うが、なぜか更新は止まらない。
もはやこの動作はバグの世界だな。。。と悪態をつきつつ、上記の記事からリンクされている原文も読んでみると、
--quote--
"Why would anyone choose to do this?"
Because they find the pop-ups intrusive, and would prefer to get them only on demand.
--quote--
ということが書かれていた。
なるほど、テキストエディタの設定は、自動的にポップアップするのを抑止してくれるだけで、オンデマンドでは動作すると言うことらしい。
したがって、VC++がIntelliSenseのデータベースの更新を止める動作にならないのはそういうわけだったのだ。

あきらめずに調べると、おしえてgoo!にVC++ 2005 Intellisenseを更新...が終了しないと言うのが投稿されているのを発見した。
私が使っているのもVC++2005SP1だ。
元ネタは、Intellisense Updating never terminates, hangs VS 2005
これを実行するこで、問題はとりあえず回避できたが、こんなworkaroundを適用しないと回避できないとは。。。

C#やVBで.NETのクラスライブラリを使っていたときは、IntelliSenseはすごい便利な機能だと思ったものだが、今回のようなプログラムを扱うときにはOFFにできた方が便利だと悟った。
posted by mign0n at 15:04| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/111464814
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック