【Eclipse】メモリ使用量を調整してパフォーマンスを向上させる方法|eclipse.ini設定・GC最適化・トラブル対処まで

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にはメモリ使用量をリアルタイムで表示する「ヒープステータス」機能があります。

  1. メニューバーから ウィンドウ設定 を開く
  2. 左メニューの 一般 を選択
  3. 「ヒープ・ステータスを表示」 にチェックを入れる
  4. 「適用して閉じる」 をクリック

Eclipseウィンドウの右下にメモリ使用量が表示されるようになります。

表示例

512M / 2048M

上記は「現在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全体の動作を遅くします。定期的に見直しましょう。

不要なプラグインを無効化・削除する

  1. メニューバーから ヘルプEclipse IDE について を選択
  2. 「インストール詳細」 をクリック
  3. 「プラグイン」 タブでインストール済みプラグイン一覧を確認
  4. 使っていないプラグインを特定し、ヘルプ新規ソフトウェアのインストール からアンインストール

メモリ消費が大きいプラグインの例

プラグイン メモリ消費 対策
Mylyn(タスク管理) 中〜大 タスク管理を使わないなら削除
WindowBuilder(GUI設計) GUIアプリを作らないなら削除
Web Tools Platform(WTP) Web開発しないなら削除
Eclipse Marketplace Client 小〜中 普段使わないなら無効化
Eclipse Git(EGit) コマンドラインGitを使うなら削除可

起動時のプラグイン読み込みを抑制する

  1. ウィンドウ設定一般起動およびシャットダウン を開く
  2. 「起動時にアクティブにするプラグイン」の一覧から不要な項目のチェックを外す
  3. 「適用して閉じる」 をクリックし、Eclipseを再起動

ワークスペースのクリーンアップ

ワークスペースにはキャッシュやビルド成果物が蓄積し、動作を遅くする原因になります。

クリーンモードで起動する

eclipse.ini に -clean オプションを追加すると、キャッシュをクリアした状態でEclipseが起動します。

eclipse.ini(先頭に追加)
-clean

ポイント:-clean は起動が遅くなるため、毎回付けるのではなく動作が不安定なときだけ一時的に使用してください。改善したら eclipse.ini から削除しましょう。

プロジェクトのクリーンビルド

  1. メニューバーから プロジェクトクリーン を選択
  2. 「すべてのプロジェクトをクリーン」を選択して 「クリーン」 をクリック

クリーンビルドにより、古いビルド成果物が削除され、ワークスペースのメモリ使用量が改善します。

.metadata フォルダのリフレッシュ

ワークスペースフォルダ内の .metadata は設定やキャッシュを保持しています。動作が極端に遅い場合は以下を試してください。

  1. Eclipseを終了
  2. ワークスペースフォルダ内の .metadata/.plugins/org.eclipse.core.resources/.history を削除
  3. 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 で設定したヒープメモリの上限に達した。

対処法

  1. eclipse.ini の -Xmx の値を増やす(例:-Xmx2048m-Xmx4096m
  2. 不要なプロジェクトを閉じる(プロジェクトを右クリック → プロジェクトを閉じる
  3. ヒープステータスを確認し、メモリリークがないか確認する

OutOfMemoryError: Metaspace

エラーメッセージ

java.lang.OutOfMemoryError: Metaspace

原因:クラスのメタデータ領域が不足。プラグインを大量にインストールしている場合に発生しやすい。

対処法

  1. -XX:MaxMetaspaceSize=512m を eclipse.ini に追加または値を増やす
  2. 不要なプラグインをアンインストール

Eclipse が起動しない(メモリ設定変更後)

原因-Xmx に物理メモリ以上の値を設定した、または構文エラー。

対処法

  1. eclipse.ini をバックアップから復元する
  2. -Xmx を物理メモリの 1/2 以下に設定し直す
  3. パラメータと値の間にスペースを入れない(-Xmx2048m が正しい。-Xmx 2048m はNG)

ポイント:eclipse.ini では -Xmx2048m を改行で分けて書いてはいけません。-Xmx2048m のように1行にまとめて記述してください。

GC が頻繁に発生して操作がカクつく

原因:ヒープメモリが少なすぎてGCが頻発している。

対処法

  1. -Xms-Xmx を同じ値に設定して、ヒープの拡張・縮小によるGCを防止
  2. G1GCを使用し -XX:MaxGCPauseMillis を調整(100〜300ms)
  3. 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 のバックアップを取る