web-dev-qa-db-ja.com

Eclipse Ganymedeのメモリ使用量を削減するにはどうすればよいですか?

私は最近のEclipseのGanymedeリリース、特にJava EEおよびWeb開発者向けのディストリビューションを使用しています。追加のプラグイン(Subclipse、Spring、FindBugsなど)をいくつかインストールし、すべてのMylynプラグインを削除しました。

アプリサーバーの起動やデータベースへの接続など、Eclipse内で特に負荷の高いことは何もしていませんが、何らかの理由で、数時間使用した後、Eclipseが500 MB近くのメモリを使用していることがわかります。

Eclipseがなぜメモリを多く使用する(リークがある)のか、そしてさらに重要なことに、これを改善するために何かできることがあれば、誰か知っていますか?

34
Dónal

特にEclipseについては知りませんが、メモリの増加に苦しんでいるIntelliJを使用しています(積極的に使用しているかどうかは関係ありません)。とにかく、IntelliJでは問題を解決できませんでしたが、ランタイムVMオプションを使用してメモリの増加を抑制しました。これらをEclipseでリセットしてみて、違い。

EclipseフォルダーのEclipse.iniファイルのVMオプションを編集できます。

(IntelliJでは)ガベージコレクターの設定がメモリの増加速度に最も影響することがわかりました。

私の設定は:

-Xms128m
-Xmx512m
-XX:MaxPermSize=120m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing

(個々の設定の説明については http://piotrga.wordpress.com/2006/12/12/intellij-and-garbage-collection/ を参照してください)。ご覧のとおり、実際のメモリ使用量よりも編集中の長い一時停止を回避することに重点を置いていますが、これを最初に使用することもできます。

34
GKelly

参考までに

  • あなたは付け加えられます

    -Dcom.Sun.management.jmxremote

eclise.iniファイルにEclipseを起動し、jdkインストールにある「jconsole.exe」を通じてメモリ使用量を監視します。

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

「接続」/「新規接続」/「Eclipse」を選択して、Eclipseが使用するメモリを監視します

  • 常に最新のjvmを使用してEclipseを起動します(他のjfkを使用してEclipse内でプロジェクトをコンパイルすることを妨げません)
3
VonC

JVMが必要でない限り(つまり、限界に達している場合)、JVMが大量のガベージコレクションを実行するとは思いません。したがって、取得できるすべてのメモリを、おそらくEclipse.iniで設定された制限(-Xmx引数、ここでは512MiBに設定)まで取得します。

「プリファレンス」->「一般」->「ヒープステータスの表示」をチェックすると、現在のヒープステータスを視覚的に表示できます。ステータスバーに小さなゲージが作成されます。このゲージには、手動のガベージコレクションをトリガーするために使用できる[ゴミ箱]ボタンもあります。

3

Ganymede Java= EEプラグインは、メモリ内で実行すると非常に巨大になります。また、長いコーディングセッションでFindBugsとその信頼性に関して悪い経験をしました。

これらのプラグインなしでは生きられない場合でも、唯一の手段はプロジェクトを閉じることです。ワークスペース内のopenプロジェクトの数を制限すると、コンパイラ(およびFindBugs)の心配が減り、メモリ使用量が大幅に減少します。

私は通常、ワークスペースを顧客ごとに分割し、最小限のプロジェクトのみを各ワークスペース内で開いたままにします。特に大規模なプロジェクト(特に、WSTで多数のファイルがチェックされているプロジェクト)を使用している場合は、メモリが消費されるだけでなく、コンパイル時に応答性が著しく停止することに注意してください。

3
Daniel Spiewak

Eclipseはかなり肥大化したIDEです。 [プロジェクト]-> [自動ビルド]で自動プロジェクトビルドをオンにすることで、最小化できます。また、現在作業していない開いているプロジェクトをすべて閉じることも役立ちます。

2
Clark

私はそれを肥大と呼びますが、漏れはありません。 (もしそれが漏れていたら、何かがクラッシュするまでそれは登っていきます。)他の人が言ったように、記憶はcheap!それです私には単純な決断のように思えます。Eclipseを500MBで実行するためのメモリバジェットがないため、メモリを少し消費するか生産性を失うかです。

要約された修辞的な質問:より貴重なもの:

  1. IDE必要なプラグインで知っている)を使用することで得られる生産性、または
  2. 一部のメモリに50〜200ドルを費やしていますか?
2
Stu Thompson

Eclipse自体はかなり肥大化しており、プラグインを追加するだけで状況が悪化します。機能が不足しているわけではないので、それは私のお気に入りのIDEですが、軽量のIDE=を探している場合は、Eclipseの使用をやめることをお勧めします。半分を実行するのはかなり正常です。しばらく実行したままにしておくと、メモリのギグになります。

2
Magsol

Eclipseがどれだけのメモリを必要とするかを気にする代わりに、問題の場所を分析してください。私はたった1つのプラグインかもしれません。

こちらのブログをチェックしてください: "Eclipseのメモリ消費の分析"

よろしく、Markus

1
kohlerm

Javaベースのプログラムのメモリ消費に問題がありました。選択したjvmに関連している可能性があることがわかりました(私の場合はそうでした)。 -clientスイッチを指定してEclipseを実行してみてください。

一部のオペレーティングシステム(ほとんどのLinuxディストリビューション)では、デフォルトのオプションはserver vmであり、guiを使用してアプリケーションを実行すると、かなり多くのメモリを消費します。

私の場合、初期メモリフットプリントは300MBから80MBに減少しました。

くだらない英語でごめんなさい。私が助けてくれれば幸いです。

よろしくアルカディウス・ジャムロチャ

1

RAMは比較的安価です(これが不十分なメモリ管理の言い訳になるわけではありません)。未使用のメモリは、本質的には廃棄メモリです。限界に達していてIDEが問題である場合は、マルチタスクを減らすか、メモリ要件を調整するか、または追加購入することを検討してください。

1
basszero

私は通常、Eclipseに512 MBのRAM(JVMの-Xmxオプションを使用)を提供し、Ganymedeでメモリの問題はありません。2GBにRAM数か月前、私はそれを本当にお勧めできます。

0

これが発生するプラットフォームを指定する必要はありません。 Windows XP、Vista、Linux、OS Xなどを使用している場合、メモリ管理は異なる場合があります。

通常、私のコンピューター(1GBのRAMを備えたWinXP)では、Eclipseは200Mbを超えることはめったになく、開いているプロジェクトのサイズ、ロードされたプラグイン、および進行中のアクションに依存します。

0
gizmo