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ファイルを↓↓↓で解析。

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=22d56091-3a7b-4497-b36e-634b51838e11

gclogが大きくなっても良ければ以下も追加すると情報が増えます。ただし、ファイルが かなり大きくなるので注意です。

-XX:+PrintGCApplicationStoppedTime<br /> -XX:+PrintGCApplicationConcurrentTime<br /> -XX:+PrintGC<br /> -XX:+PrintGCDetails<br /> -XX:+PrintGCTimeStamps<br /> -XX:+PrintHeapAtGC

Overheadが高い値を示さないように設定するのが良いかと。