cypher256's blog

Pleiades とか作った

Eclipse の起動を 5 倍高速化するには

Pleiades を使わない。以外の方法で。少し前に Eclipse プラグイン界のドンのたけぞうさんとご一緒させていただいたときに、同席させてもらった隣の人が Eclipse 起動速くしてよ! って言ってましたが、今でも言ってます。正直すみませんでした。でもたけぞうさんがきっとそのうち作ってくれると密かに期待していたのですが、もう逃げられなくなってきたので、ちょっと色々と。

eclipse.ini で高速化

-Xmx と -Xms を同じサイズにする。これはメモリに余裕があれば速くなるよって、Oracle や HP、昔の BEA が公式に言ってました。最小サイズから拡大するときの再計算が無くなるからって。実際サーバーでは、これに習って同じサイズにすることが多いと思います。Eclipse で実測すると。全然変わらん。その他、JVM のパラメーターが色々ありますが、計っても誤差か分からない結果しか出ません。

JQS (Java Quick Starter)

http://java.com/ja/download/help/quickstarter.xml
JDK 6u10 から付いてくる高速起動メカニズム。Vista は関係ないですが、これは期待できそうだ! 実測すると。全然変わらん。考えてみると、もうすでに Sun の JVM の起動は IBM や昔の BEA のと比べても最速。Sun 以外はクライアント用途は考えてないから比較するのはあれですけど。そもそも、Eclipse + PleiadesボトルネックJVM 起動ではない。

デフラグ

すっかり忘れてました。これは Eclipse というより全般的にパフォーマンスアップの効果があります。Eclipse を数回以上使ってから、まだデフラグってない人はいらないものを削除して、やってみてください。すっきりデフラグとかが有名ですね。デフラグは色々なツールが存在しますが、ただ断片を並べ替えるだけのものはたぶん意味がないです。

メモリ上で動かす

Gavotte や ERAM改 というメモリをドライブに割り当てるツールがあります。ERAM改で 1 GB ほどのメモリドライブを作って試してみました。CrystalMark で計ったところ、恐ろしい値が。期待して Eclipse をのっけて起動したところ、速いには速い。でも、当たり前かもしれませんけど、メモ帳なみのパフォーマンスとかにはならないですね。メモリを持て余している人は試してみてはいかがでしょうか。

メモリ上で最速 Eclipse - C/pHeR Memo - Java とか。Eclipse とか。

前に書いたもの。でもこれはメモリに毎回コピーしないとだめなので、実用性には欠けます。

Eclipse プリロード

私の環境では起動は 5 倍高速になりました。Pleiades 1.2.3.p8 以降に付いてくる eclipse.exe startup.cmd のショートカットをスタートアップに置けば快適です。ピンとくる人にはピンとくるかもしれませんが、詐欺みたいなものです。でもこれはよくある常駐(秀丸みたいな)ではなく、スタートアップで WindowsJVM のキャッシュに EclipsePleiades を乗っけた後、Pleiades が自動的にプロセスを完全に終了させます。終了進捗ダイアログは表示されてしまいますが、起動スプラッシュとウィンドウは見た目には表示されません(目がいい人にはウィンドウが見えるかも)。次に起動するときは最大のボトルネックになっているディスク I/O がほとんど発生しなくなるため高速化されます。ただしキャッシュが上書きされないようにメモリは潤沢に必要です。これを、あの人のスタートアップにこっそり入れておこう。


実際のところ、パフォーマンスっていうのは相対的なものでしかありません。現状なら例えばマルチコア CPU とメモリ 4 GB で常用している人にとって、P4 とメモリ 1 GB では苦痛そのものでしょう。そのうち Core2 とメモリ 4 GB とかでも苦痛になるときが必ずやってきます。

-initialize (11/03 追記)

-initialize オプションで起動が速くなるとのコメントをいただいたので計測してみました。テスト用の Pleiades All in One Java で -initialize 前の 3 回平均起動時間が 5.8 秒、-initialize 後の 3 回平均が 5.8 秒で変化はありませんでした。普段使用している Eclipse 環境で -initialize 前が 7.3 秒、適用後は 7.2 秒でした。ただ、これは複数回起動した後ということと(実際は OS を起動した後の 1 回目しか正しく計測できない)、メモリが多い環境ということで効果がなかっただけかもしれません。