Eclipseが遅いときの対処
Eclipseは結構重いので少しでも軽くしようと、とりあえず自分がやっている事について。
なお、私の環境は以下です。
- OSはWindows8.1 64bit
- Java SEは Oracleの build 1.6.0_45-b06
- EclipseはEclipse 4.3 Kepler
Javaは未だに1.6です(^^;)
GUI関係
ThemeをClassicに変更
Window->Preferences->General->Appearanceを選択して
Themeを Classicに変更する。
アニメーション禁止
Window->Preferences->General->Appearanceを選択して
Enable animationsのチェックを外す
Java VM関係
GCでつまずいてる感があるときにですが、体感できる場合もあれば全然わからんことも多いです。環境に依存します。
Java VMのMemoryを変更
eclipseをInstallした場所にeclipse.iniがあるので、そこを変更します。
通常最後の方にこんな感じで書かれていると思います。
-vmargs<br /> -Dosgi.requiredJavaVersion=1.6<br /> -Xms40m<br /> -Xmx512m
自分はわりとMemoryが潤沢にある環境を使っているので適当ですが こんな感じにしてます。
-vmargs<br /> -Dosgi.requiredJavaVersion=1.6<br /> -XX:PermSize=256M<br /> -Xms512m<br /> -Xmx512m<br /> -XX:+UseConcMarkSweepGC<br /> -XX:+CMSIncrementalMode<br />
パーマネントサイズ(-XX:PermSize)を最初から256Mに設定して拡大縮小を抑制。
なお、最大サイズに関しては以下の様に最初から256Mにする設定が入ってました。
--launcher.XXMaxPermSize<br /> 256M
自分が使ってる環境だと普通に使うだけで170MくらいまではPermanent 領域のサイズが拡大されています。もっともUsed Sizeはそこまで大きくないですが。
ただ自分はPlug-inをなるべくInstallしないようにしているので、Plug-inが増えた場合、状況が変わるかもしれません。
# この設定に関しては効果が感じられた事が無いです(^^;
# もともとPermがGCの対象になるのはユーザがClass Loaderを自作した場合に限られるようなので、デフォルトで影響無いかもしれません。
ヒープサイズは初期サイズ(-Xms)と最大サイズ(-Xmx)共に512Mです。
これで問題になった事が無いのですが、海外サイトだとわりと1024Mに拡大している例が目立ちます。
GCの種類について、コンカレント・インクリメンタルGCにしています。これはレスポンスタイムを重要視したからです。
GCの種類と選び方については以下に詳しくあります。
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
調査方法
きちんと調査したい人は以下の設定を追加。
-verbose:gc<br /> -Xloggc:gclog.txt
こんな感じで。あとは出来たgclog.txtファイルを↓↓↓で解析。
gclogが大きくなっても良ければ以下も追加すると情報が増えます。ただし、ファイルが かなり大きくなるので注意です。
-XX:+PrintGCApplicationStoppedTime<br /> -XX:+PrintGCApplicationConcurrentTime<br /> -XX:+PrintGC<br /> -XX:+PrintGCDetails<br /> -XX:+PrintGCTimeStamps<br /> -XX:+PrintHeapAtGC
Overheadが高い値を示さないように設定するのが良いかと。