IntelliSenseのデータベースをRAMディスクに移動してみた
ええVisualStudio愛用してますとも。
さて、コード補完等をしてくれるIntelliSenseですが、C++の場合はソースを解析したものをキャッシュすることで高速化を図っています。具体的に言うと.ncb(2008以前)とか.sdfとかipch(2010)とかそんな名前のファイル・フォルダです。
コード補完無しではろくにコード書けないので*1やむを得ないものの、100MB近いファイルがソリューションごとに生成されて、そのうえコードを変更する度に更新されるというのはちょっと気になるところです。ファイルをコピーするときに邪魔だしね。
で、どうせ頻繁に更新されるなら*2もうオンメモリでいいじゃないですか。
先日Dataram RAMDiskというソフトを導入して2GBほどRAMディスクとして使っています。ここに移動することにしました。
フォールバックってなんだ
VisualStudioにはIntelliSenseのデータベースが置けない場所が存在します。具体的にはネットワークドライブなど。ネットワークドライブ上のプロジェクトはそのまま開いて編集・ビルドできますが、件のデータベースは置かせてくれません。
でもデータベース無しではろくに動かない。そうだ、代替のストアに保存しよう。
それがフォールバック位置であり、ソリューションディレクトリの代わりにフォールバック位置を利用することをフォールバックと言うそうです。
じゃあ常にフォールバック位置を使うようにすればソリューションディレクトリを使わずに済むよね、というのが今回の話。
いざ設定
ツール→オプションを開き、テキストエディター→C/C++→詳細とたどるとこんな画面になります。
詳細というかほとんどIntelliSenseの設定ですね。ところどころ鬱陶しいと思っている人はいじってみると幸せになれるかも知れません。
今回のターゲット、フォールバック位置というグループもありますね。
常にフォールバック位置を使用
通常データベースのストアとしてはソリューションディレクトリが優先されますが、ここをTrueにするとフォールバック位置を優先的に使用します。
フォールバック位置の使用を警告しない
先の設定で優先させた場合も含め、フォールバック位置が使用されると警告が表示されます。ここをTrueにすることでその表示を抑制します。
確かに軽くなったけど
DxLib.hとか大きなヘッダを開くと動きが止まるのはなぜ・・・
と、VSCommands無効化したら軽くなった。お ま え か