Eclipseは多機能なIDEですが、デフォルトのメモリ設定ではプロジェクト規模が大きくなるにつれて動作が重くなります。
この記事では、eclipse.ini の場所と編集方法・-Xms / -Xmx の推奨値・GCオプションによる最適化・ヒープメモリの監視・プラグインとワークスペースの整理・バージョン別の推奨設定・よくあるエラーと対処法まで、Eclipseのパフォーマンスチューニングを網羅的に解説します。
eclipse.ini ファイルの場所
Eclipseのメモリ設定は eclipse.ini(設定ファイル)に記述されています。まずはファイルの場所を確認しましょう。
| OS |
eclipse.ini の場所 |
| Windows |
C:\eclipse\eclipse.ini(eclipse.exe と同じフォルダ) |
| macOS |
Eclipse.app/Contents/Eclipse/eclipse.ini |
| Linux |
/opt/eclipse/eclipse.ini(インストール先直下) |
注意:macOS の場合は Finder で Eclipse.app を右クリック → 「パッケージの内容を表示」で辿れます。ターミナルから開く場合は open -a TextEdit Eclipse.app/Contents/Eclipse/eclipse.ini を使いましょう。
-Xms / -Xmx の意味と推奨値
eclipse.ini にはJVM(Java仮想マシン)のメモリ割り当てを制御するパラメータが含まれています。
| パラメータ |
意味 |
デフォルト値 |
-Xms |
JVMの初期ヒープサイズ(起動時に確保するメモリ) |
256m |
-Xmx |
JVMの最大ヒープサイズ(使用できるメモリの上限) |
1024m |
-Xss |
スレッドごとのスタックサイズ |
1m |
-Xms と -Xmx のポイント
-Xms と -Xmx を同じ値にすると、起動時にメモリを一括確保するためGCの発生頻度が下がり安定します
- 値の単位は
m(メガバイト)または g(ギガバイト)で指定します
- 物理メモリの 1/4 〜 1/2 を目安に設定するのが一般的です
- 搭載メモリ以上の値を設定するとEclipseが起動しなくなるので注意してください
物理メモリ別の推奨設定
PCに搭載されている物理メモリの量に応じた推奨値は以下のとおりです。
| 物理メモリ |
-Xms |
-Xmx |
備考 |
| 4GB |
512m |
1024m |
最低限の開発が可能 |
| 8GB |
1024m |
2048m |
一般的な開発に十分 |
| 16GB |
2048m |
4096m |
大規模プロジェクト向き |
| 32GB以上 |
4096m |
8192m |
複数プロジェクト同時開発 |
eclipse.ini の編集方法(具体的な設定例)
eclipse.ini をテキストエディタで開き、JVMパラメータを編集します。
注意:eclipse.ini を編集する前に、必ずバックアップを取っておきましょう。設定を誤るとEclipseが起動しなくなる可能性があります。
デフォルトの eclipse.ini
eclipse.ini(デフォルト)
// Eclipse 起動パラメータ
-startup
plugins/org.eclipse.equinox.launcher_1.6.600.v20231106-1826.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.800.v20231003-0937
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=17
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-Xms256m
-Xmx1024m
--add-modules=ALL-SYSTEM
推奨設定に変更した eclipse.ini(8GBメモリのPC向け)
eclipse.ini(推奨設定)
-startup
plugins/org.eclipse.equinox.launcher_1.6.600.v20231106-1826.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.800.v20231003-0937
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=17
-Dosgi.instance.area.default=@user.home/eclipse-workspace
// --- メモリ設定 ---
-Xms1024m
-Xmx2048m
// --- GC設定 ---
-XX:+UseG1GC
-XX:+UseStringDeduplication
// --- その他の最適化 ---
-XX:MaxMetaspaceSize=512m
-Xss2m
--add-modules=ALL-SYSTEM
ポイント:-vmargs の行より下にJVMパラメータを記述します。-vmargs より上はEclipse本体のランチャー設定なので、メモリ関連のパラメータを書いても無視されます。
メモリ使用量の確認方法(ヒープステータス)
設定を変更したあと、実際にメモリがどれだけ使われているかを確認しましょう。
ヒープステータスバーを表示する
Eclipseにはメモリ使用量をリアルタイムで表示する「ヒープステータス」機能があります。
- メニューバーから ウィンドウ → 設定 を開く
- 左メニューの 一般 を選択
- 「ヒープ・ステータスを表示」 にチェックを入れる
- 「適用して閉じる」 をクリック
Eclipseウィンドウの右下にメモリ使用量が表示されるようになります。
上記は「現在512MBを使用中、最大2048MBまで使用可能」という意味です。ヒープステータスバーをクリックすると手動でGC(ガベージコレクション)が実行され、不要なメモリが解放されます。
GCログで詳細に監視する
より詳細なメモリ使用状況を確認したい場合は、eclipse.ini にGCログ出力の設定を追加します。
eclipse.ini に追加(Java 9以降)
-Xlog:gc*:file=gc.log:time,uptime,level,tags
eclipse.ini に追加(Java 8)
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:gc.log
Eclipse起動後、インストールフォルダに gc.log が生成され、GCの発生タイミングやメモリ回収量を確認できます。
GCオプションによるパフォーマンス最適化
GC(ガベージコレクション)はJVMが不要になったオブジェクトのメモリを自動回収する仕組みです。適切なGCアルゴリズムを選択することで、Eclipse操作中のフリーズ(Stop-the-World)を軽減できます。
GCアルゴリズムの種類と特徴
| GCアルゴリズム |
JVMオプション |
特徴 |
推奨ケース |
| G1GC |
-XX:+UseG1GC |
停止時間を短くしつつスループットも確保 |
Java 9以降のデフォルト。最もおすすめ |
| ZGC |
-XX:+UseZGC |
停止時間が 1ms 未満と非常に短い |
Java 15以降。ヒープ 4GB以上の大規模向け |
| Shenandoah |
-XX:+UseShenandoahGC |
低レイテンシ。ZGCと同等の性能 |
OpenJDK 12以降(Oracle JDKでは使用不可) |
| Parallel GC |
-XX:+UseParallelGC |
スループットが高いが停止時間が長い |
Java 8 のデフォルト。バッチ処理向き |
| CMS |
-XX:+UseConcMarkSweepGC |
停止時間が短いがCPU負荷が高い |
Java 8 まで。Java 14 で廃止 |
G1GCの推奨設定
Eclipseの日常的な開発には G1GC が最適です。以下のオプションを eclipse.ini に追加しましょう。
G1GC 推奨オプション
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+UseStringDeduplication
-XX:G1HeapRegionSize=16m
| オプション |
説明 |
-XX:MaxGCPauseMillis=200 |
GCの目標停止時間を200ミリ秒に設定(デフォルト値) |
-XX:+UseStringDeduplication |
同一内容のStringオブジェクトのメモリを共有して節約 |
-XX:G1HeapRegionSize=16m |
ヒープ領域のリージョンサイズ(大きいヒープでは16〜32mが効果的) |
その他のパフォーマンスチューニングオプション
GC以外にも、Eclipseの動作を改善するJVMオプションがあります。
その他の推奨オプション
// Metaspace の最大サイズ(クラス情報のメモリ上限)
-XX:MaxMetaspaceSize=512m
// コンパイラスレッド数(CPUコア数に応じて調整)
-XX:CICompilerCount=4
// コード キャッシュの最大サイズ
-XX:ReservedCodeCacheSize=512m
// JIT コンパイルの最適化を有効化
-XX:+TieredCompilation
// クラスデータ共有(起動高速化)
-XX:+UseCompressedOops
-XX:+UseCompressedClassPointers
// スレッドのスタックサイズ
-Xss2m
| オプション |
説明 |
効果 |
-XX:MaxMetaspaceSize |
Metaspace領域の上限 |
MetaspaceのOOM防止 |
-XX:CICompilerCount |
JITコンパイラスレッド数 |
コンパイル速度向上 |
-XX:ReservedCodeCacheSize |
コンパイル済みコードのキャッシュ上限 |
コード最適化の持続 |
-XX:+TieredCompilation |
段階的JITコンパイル |
起動速度と実行速度を両立 |
-XX:+UseCompressedOops |
オブジェクト参照の圧縮 |
メモリ使用量の削減 |
-Xss |
スレッドのスタックサイズ |
StackOverflowError の防止 |
注意:-XX:MaxPermSize(PermGen領域)は Java 8 以降で廃止されました。Java 8+ では -XX:MaxMetaspaceSize を使用してください。また -XX:+AggressiveOpts は Java 11 以降では非推奨となっているため、使用を避けましょう。
プラグインの整理でメモリ節約
不要なプラグインはメモリを消費し、Eclipse全体の動作を遅くします。定期的に見直しましょう。
不要なプラグインを無効化・削除する
- メニューバーから ヘルプ → Eclipse IDE について を選択
- 「インストール詳細」 をクリック
- 「プラグイン」 タブでインストール済みプラグイン一覧を確認
- 使っていないプラグインを特定し、ヘルプ → 新規ソフトウェアのインストール からアンインストール
メモリ消費が大きいプラグインの例
| プラグイン |
メモリ消費 |
対策 |
| Mylyn(タスク管理) |
中〜大 |
タスク管理を使わないなら削除 |
| WindowBuilder(GUI設計) |
大 |
GUIアプリを作らないなら削除 |
| Web Tools Platform(WTP) |
大 |
Web開発しないなら削除 |
| Eclipse Marketplace Client |
小〜中 |
普段使わないなら無効化 |
| Eclipse Git(EGit) |
中 |
コマンドラインGitを使うなら削除可 |
起動時のプラグイン読み込みを抑制する
- ウィンドウ → 設定 → 一般 → 起動およびシャットダウン を開く
- 「起動時にアクティブにするプラグイン」の一覧から不要な項目のチェックを外す
- 「適用して閉じる」 をクリックし、Eclipseを再起動
ワークスペースのクリーンアップ
ワークスペースにはキャッシュやビルド成果物が蓄積し、動作を遅くする原因になります。
クリーンモードで起動する
eclipse.ini に -clean オプションを追加すると、キャッシュをクリアした状態でEclipseが起動します。
eclipse.ini(先頭に追加)
-clean
ポイント:-clean は起動が遅くなるため、毎回付けるのではなく動作が不安定なときだけ一時的に使用してください。改善したら eclipse.ini から削除しましょう。
プロジェクトのクリーンビルド
- メニューバーから プロジェクト → クリーン を選択
- 「すべてのプロジェクトをクリーン」を選択して 「クリーン」 をクリック
クリーンビルドにより、古いビルド成果物が削除され、ワークスペースのメモリ使用量が改善します。
.metadata フォルダのリフレッシュ
ワークスペースフォルダ内の .metadata は設定やキャッシュを保持しています。動作が極端に遅い場合は以下を試してください。
- Eclipseを終了
- ワークスペースフォルダ内の
.metadata/.plugins/org.eclipse.core.resources/.history を削除
- Eclipseを再起動
注意:.metadata フォルダ自体を削除するとワークスペースの設定がすべてリセットされます。.history フォルダのみ削除してください。
Eclipse バージョン別の推奨設定
Eclipseのバージョンと使用するJavaバージョンによって、最適な設定が異なります。
| Eclipse |
必要Java |
推奨GC |
備考 |
| 2024-12 以降 |
Java 21+ |
G1GC / ZGC |
ZGCが安定して使えるバージョン |
| 2024-06 〜 2024-09 |
Java 17+ |
G1GC |
Java 17 がLTSで安定 |
| 2022-03 〜 2023-12 |
Java 17+ |
G1GC |
Java 17 必須 |
| 2021-06 〜 2021-12 |
Java 11+ |
G1GC |
Java 11 がLTSで安定 |
| 4.x(Neon以前) |
Java 8 |
CMS / ParallelGC |
レガシー。可能であればバージョンアップ推奨 |
バージョン別 eclipse.ini テンプレート
Eclipse 2024-12 以降(Java 21 + ZGC)
-Xms2048m
-Xmx4096m
-XX:+UseZGC
-XX:+ZGenerational
-XX:MaxMetaspaceSize=512m
-XX:ReservedCodeCacheSize=512m
-XX:+UseCompressedOops
-Xss2m
Eclipse 2022-03 〜 2024-09(Java 17 + G1GC)
-Xms1024m
-Xmx2048m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+UseStringDeduplication
-XX:MaxMetaspaceSize=512m
-XX:ReservedCodeCacheSize=512m
-Xss2m
Eclipse 4.x / Neon以前(Java 8 + ParallelGC)
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=256m
-Xss1m
よくある問題と対処法
OutOfMemoryError: Java heap space
エラーメッセージ
java.lang.OutOfMemoryError: Java heap space
原因:-Xmx で設定したヒープメモリの上限に達した。
対処法:
- eclipse.ini の
-Xmx の値を増やす(例:-Xmx2048m → -Xmx4096m)
- 不要なプロジェクトを閉じる(プロジェクトを右クリック → プロジェクトを閉じる)
- ヒープステータスを確認し、メモリリークがないか確認する
OutOfMemoryError: Metaspace
エラーメッセージ
java.lang.OutOfMemoryError: Metaspace
原因:クラスのメタデータ領域が不足。プラグインを大量にインストールしている場合に発生しやすい。
対処法:
-XX:MaxMetaspaceSize=512m を eclipse.ini に追加または値を増やす
- 不要なプラグインをアンインストール
Eclipse が起動しない(メモリ設定変更後)
原因:-Xmx に物理メモリ以上の値を設定した、または構文エラー。
対処法:
- eclipse.ini をバックアップから復元する
-Xmx を物理メモリの 1/2 以下に設定し直す
- パラメータと値の間にスペースを入れない(
-Xmx2048m が正しい。-Xmx 2048m はNG)
ポイント:eclipse.ini では -Xmx と 2048m を改行で分けて書いてはいけません。-Xmx2048m のように1行にまとめて記述してください。
GC が頻繁に発生して操作がカクつく
原因:ヒープメモリが少なすぎてGCが頻発している。
対処法:
-Xms と -Xmx を同じ値に設定して、ヒープの拡張・縮小によるGCを防止
- G1GCを使用し
-XX:MaxGCPauseMillis を調整(100〜300ms)
- GCログを有効化して問題箇所を特定
ビルド時に StackOverflowError
エラーメッセージ
java.lang.StackOverflowError
原因:スレッドのスタックサイズが不足。深い再帰やAST解析で発生する場合がある。
対処法:-Xss の値を増やす(デフォルト 1m → 2m 以上に変更)。
IntelliJ IDEA との比較
同じJava IDEとして人気のあるIntelliJ IDEAと、メモリ・パフォーマンスの観点で比較します。
| 項目 |
Eclipse |
IntelliJ IDEA |
| デフォルト最大メモリ |
1024MB |
2048MB |
| 設定ファイル |
eclipse.ini |
idea64.vmoptions |
| メモリ設定GUI |
ヒープステータスのみ |
設定画面から直接変更可能 |
| インデックス方式 |
増分(差分ビルド) |
全文インデックス(メモリ消費大) |
| プラグインの影響 |
プラグイン数で大きく変動 |
プラグインの影響は比較的小さい |
| 起動速度 |
やや速い |
やや遅い(インデックス構築のため) |
| ライセンス |
無料(OSS) |
Community版は無料、Ultimate版は有料 |
Eclipse と IntelliJ IDEA の使い分け
- Eclipse:無料で使いたい・軽量に保ちたい・プラグインで自由にカスタマイズしたい場合
- IntelliJ IDEA:メモリに余裕がある・コード補完やリファクタリングの精度を重視する場合
- どちらもJVMベースのため、
-Xms / -Xmx によるメモリチューニングの考え方は共通です
最終的なおすすめ eclipse.ini(16GBメモリ・Java 17)
一般的な開発環境(物理メモリ16GB、Java 17)での推奨設定をまとめます。
eclipse.ini(最終推奨設定)
-startup
plugins/org.eclipse.equinox.launcher_1.6.600.v20231106-1826.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.800.v20231003-0937
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=17
-Dosgi.instance.area.default=@user.home/eclipse-workspace
// ===== メモリ設定 =====
-Xms2048m
-Xmx4096m
-Xss2m
// ===== GC 設定 =====
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+UseStringDeduplication
-XX:G1HeapRegionSize=16m
// ===== その他最適化 =====
-XX:MaxMetaspaceSize=512m
-XX:ReservedCodeCacheSize=512m
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:+UseCompressedClassPointers
--add-modules=ALL-SYSTEM
設定変更チェックリスト
Eclipseのパフォーマンスを改善するために、以下の項目を順番に確認してください。
| チェック項目 |
確認ポイント |
| eclipse.ini のバックアップ |
編集前にコピーを保存したか |
| -Xms / -Xmx の設定 |
物理メモリの 1/4〜1/2 に設定したか |
| GCアルゴリズム |
Java バージョンに適したGCを選択したか |
| ヒープステータス表示 |
有効にしてメモリ使用量を監視しているか |
| 不要プラグインの削除 |
使っていないプラグインを整理したか |
| ワークスペースのクリーン |
定期的にクリーンビルドを実行しているか |
| Eclipseの再起動 |
設定変更後にEclipseを再起動したか |
まとめ
eclipse.ini の場所はOS(Windows / macOS / Linux)によって異なる
-Xms(初期ヒープ)と -Xmx(最大ヒープ)を物理メモリの 1/4〜1/2 に設定する
- G1GC(Java 9+)または ZGC(Java 15+)の使用でGC停止時間を短縮できる
-XX:MaxMetaspaceSize や -XX:ReservedCodeCacheSize で関連領域も最適化する
- ヒープステータスバーを有効にしてメモリ使用量を常に監視する
- 不要なプラグインの削除・ワークスペースのクリーンアップも効果的
OutOfMemoryError が発生したら -Xmx の引き上げとプロジェクト整理を行う
- 設定変更前に必ず eclipse.ini のバックアップを取る