読者です 読者をやめる 読者になる 読者になる

Eclipseが重い原因はTortoiseSVN?

(2006/12/23追記)この記事はかなりの高確率でウソです。結局ウィルスバスターが原因ぽい

会社ではEclipseを常に立ち上げて仕事をしているのだが、最近、妙にEclipseが重い。特に起動時やダイアログを表示するときにめちゃくちゃ時間がかかる。少し前までは、20秒程度でEclipseが起動してたのに、最近では遅いときで3分くらいかかることもある。こりゃなんか不味いアプリでもインストールしてしまったかな?とも考えたが、特に心当たりはない。
タスクマネージャを見てみると、Eclipse起動時にSystemプロセスのCPU使用率が90%を超えたまま、ウンウン唸っているようだ。むむむ。Eclipseの起動時には、内部でEclipseを構成する大量のjarファイル群を読み込んでいるはず。実際、Jarの読み込みが完了して、ワークスペース・ランチャーのダイアログが表示されれば、あとはスムーズにEclipseが起動する。てことは、ファイルのIOあたりになんかボトルネックでもあるのか?と思い、FilemonNTというソフトで調査してみる。
FilemonNTってのは、システム上の全プロセスが握っているファイルを逐一表示するためのソフト。こいつでEclipse起動時の様子を観察してみる。うむ、とくに怪しいプロセスはないが・・・んん。WindowsのSubversionクライアントであるTortoiseSVNに含まれるTSVNCache.exeというプロセスが、やたらとファイルアクセスしている。さすがにこいつは関係ないよな、と思いつつググってみる・・。すると、TSVNCache.exeが起動していると時々ファイルアクセスのパフォーマンスが極端に低下してしまうことがある、ということが判った。ほんとかよ。TortoiseSVNのユーザズガイド(http://www.caldron.jp/~nabetaro/svn/TortoiseSVN-trunk/TortoiseSVN_ja/tsvn-dug-settings.html)を見てみると...

このプロセスは、全ドライブの変更を監視し、作業コピー内のファイルが更新されれば、その状態情報を再取得します。

ぎゃ。なんてこった。たしかにFilemonを眺めていると、ドライブ全体をクロールしている感じだった。変更があったファイルがSVN管理下のものであれば、属性情報を更新している、っていう感じに見える。なぜこんな無駄そうな事を!?
一応ユーザズガイドには、「優先度が最低で動作しますので、他のプログラムが、これによりリソースをとられてしまうことはありません。」とは書いてあるのだが・・怪しい。
とりあえずサクッとTortoiseSVNをアンインストールして、PCを再起動し、試しにEclipseを起動してみる・・・・おぉっ、早い!20秒程度で起動完了。これはマジで早くなった気がする。念のため、隣の席の後輩にも試してもらうと、同じく起動が早くなったかもしれない、とのこと。なにげにWordの起動なんかも早くなった気がする。

というわけで、明確な根拠みたいなものは何ひとつ無いですけど、TortoiseSVNをインストールしてて、かつ最近Eclipseの起動が遅い、という人は試してみる価値はあるかもしれません。

(とはいえ、前々からTortoiseSVNはインストールしてたわけで、なんで今になって重くなってしまうんだ?という点は謎のまま。何かぐうぜん引き金を引いちゃったのかな?)

追記:でもTortoiseSVNってSVNユーザにとってはかなりメジャーなアプリだと思うんだけど、同じような症状の例はWebを探してもあんまり見つからない。。どうなのかな。。むむむ。