1. ホーム
  2. エクリプス

[解決済み】Eclipseの最適なJVM設定は何ですか?[クローズド]。

2022-03-28 02:19:17

質問

Eclipseを実行するのに最適なJVMの設定は何ですか?

解決方法を教えてください。

<サブ 今年もこの季節がやってきました: "eclipse.ini take 3" the settings strike back!

Eclipse Helios 3.6および3.6.xの設定

altテキスト http://www.eclipse.org/home/promotions/friends-helios/helios.png

の設定後 Eclipse Ganymede 3.4.x Eclipse Galileo 3.5.x ここでは、最適化されたquot;optimized".を詳しく見ていきます。 eclipse.ini Eclipse Helios 3.6.x 用の設定ファイルです。

( というのは、私たちの職場のしょぼいワークステーション、2002年製の古いP4と2GoのRAMとXPSp3上でEclipseをフル稼働させることができたからです。しかし、私はWindows7で同じ設定をテストしました。 )

Eclipse.ini

警告 : Windows 以外のプラットフォームでは、Sun 独自のオプションを使用します。 -XX:MaxPermSize の代わりに、Eclipse 専用のオプション --launcher.XXMaxPermSize .

ということです。 ただし を使用している場合は、最新の jdk6u21 ビルド 7 . 以下のOracleの項を参照してください。

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons



を適応させる。 p2.reconciler.dropins.directory を任意の外部ディレクトリにコピーします。

こちらをご覧ください SOアンサー . Eclipseのインストールとは関係なく、新しいプラグインをディレクトリにドロップすることができるようにすることです。

次のセクションでは、この eclipse.ini ファイルを作成します。


Oracle JVM 1.6u21 (pre build 7)とEclipseのクラッシュの恐ろしさ

アンドリュー・ニーファー がこの状況を警告してくれていて、その上で ブログ記事 について、標準的でないvmの引数( -XX:MaxPermSize ) で、他のベンダーの vms が全く起動しない原因となることがあります。

しかし、そのオプションのeclipse版( --launcher.XXMaxPermSize )は、新しいJDK(6u21、6u21 build 7を使用していない限り、下記参照)で動作しません。

最終 の解決策は Eclipse Wiki を、そして Windows版Helios(6u21プリビルド7)の場合 だけです。

(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.x86_1.1.0.v20100503

これだけです。ここでいじるべき設定はありません(繰り返しますが、Heliosの場合のみです Windowsの場合 を付けて 6u21プリビルド7 ).

Windows 以外のプラットフォームでは、Sun 独自のオプションに戻す必要があります。 -XX:MaxPermSize .

この問題は、ある回帰に基づくものです。 java.exeのOracleリブランディングにより、JVMの識別に失敗する。 とトリガーされました。 バグ 319514 をEclipse上で実行しました。

アンドリューが担当したのは バグ 320005 - [ランチャー]。 --launcher.XXMaxPermSize: isSunVM Oracleの場合はtrueを返すべき しかし、それはHelios 3.6.1のみとなります。

フランシス・アプトン もう一人のEclipseコミッター。 すべての状況を振り返る .

7月27日、u21b7を更新しました。 :

Oracleは、次のJava 6のリリースに向けてこの変更を後退させ、JDK 7まで再び実装することはありません。 .

を使用する場合 jdk6u21ビルド7 に戻すことができます。 --launcher.XXMaxPermSize (eclipseオプション)の代わりに -XX:MaxPermSize (非標準のオプション)。

C ランチャーのシムで起きている自動検出 eclipse.exe はまだ"を探します。 Sun Microsystems という文字列がありますが、6u21b7では再び動作するようになりました。

今のところ、私はまだ -XX:MaxPermSize のバージョン(いつみんながeclipseを立ち上げるか分からないので JDK)。


暗黙の `-startup` と `--launcher.library` です。

以前の設定とは異なり、これらのモジュールの正確なパスは設定されなくなりました。これは、Eclipse 3.6.x の異なるリリース間で異なることがあるため便利です。

  • を起動します。指定しない場合、実行ファイルはpluginsディレクトリで org.eclipse.equinox.launcher バンドルで、最も高いバージョンのものを使用します。
  • launcher.library。指定されない場合、実行可能ファイルは plugins ディレクトリから適切な org.eclipse.equinox.launcher.[platform] という名前の共有ライブラリを使用します。 eclipse_* の中にあります。

JDK6を使用する

Eclipseの起動にJDK6が明示的に要求されるようになりました。

-Dosgi.requiredJavaVersion = 1.6

これは SO質問 は、Mac OSでの開発で好発進したことを報告しています。


+実験用VMOオプションのアンロック

以下のオプションは、Sun JVMの実験的なオプションの一部です。

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

この中で報告されている ブログ記事 を使えば、Eclipseを高速化できる可能性があります。

をすべて見る JVMオプションはこちら また、公式の Java Hotspotのオプションページ .

これらのオプションの詳細リスト は、次のように報告しています。 UseFastAccessorMethods がデフォルトで有効になっている可能性があります。

参照 "JVMのアップデート" :

<ブロッククオート

注意点として、G1はJDK 7に向けた新しいガベージコレクタですが、u17からリリースされたバージョン6ではすでに使用されています。


Eclipseでコマンドラインからファイルを開く

をご覧ください。 ブログ記事 この新しいオプションについて、Andrew Nieferが報告しています。

--launcher.defaultAction
openFile

これは、ランチャーが、" で始まらない引数だけを含むコマンドラインで呼び出された場合に、ランチャーに伝えます。 - の後に " が続くものとして扱われます。 --launcher.openFile となります。

eclipse myFile.txt

Windowsでeclipseに関連するファイルをダブルクリックしたり、ファイルを選択して"を選択すると、ランチャーが受け取るコマンドラインはこのようなものになります。 Open With または "。 Send To "イクリプス。

相対パス は、まず現在の作業ディレクトリに対して解決され、次にeclipseのプログラムディレクトリに対して解決されます。

参照 バグ 301033 を参照してください。原文 バグ4922 (2001年10月、9年後に修正)。


p2 と符号なしダイアログプロンプト

多くのプラグインをインストールする際に、このダイアログボックスにうんざりしている方。

を追加してください。 eclipse.ini :

-Declipse.p2.unsignedPolicy=allow

こちらをご覧ください ブログ記事 から クリス・アニシッチ と、その バグレポート235526 .

プロンプトは少ないほうがいいというのは、セキュリティの研究でも裏付けられていますね。

人は、自分がやり遂げたいことの流れの中で飛び込んでくるものを無視します。

3.6では、流れの途中で警告をポップアップしないようにすべきです。いくら簡略化しても、人々はそれを無視するだけです。

その代わりに、すべての問題を収集して ではなく 問題のあるバンドルをインストールし、代わりにユーザーをワークフローの修正ポイントに戻し、信頼を追加する、セキュリティポリシーをより緩く設定する、などの修正を行うことができます。これを セーフステージング .

---------- http://www.eclipse.org/home/categories/images/wiki.gif altテキスト http://www.eclipse.org/home/categories/images/wiki.gif altテキスト http://www.eclipse.org/home/categories/images/wiki.gif

追加オプション

これらのオプションは、直接 eclipse.ini 上記のとおりですが、必要に応じて便利に使うことができます。


Windows7 の `user.home` の問題

eclipseは起動時にkeystoreファイル(パスワードが保存されているファイル)を読み込みますが、このファイルは user.home .

もし、何らかの理由で user.home がフルレッジパスに適切に解決されないと、Eclipse は起動しません。

で最初に提起された このSOの質問 この問題が発生した場合、キーストアファイルを明示的なパスに再定義する必要があります(最初に解決する user.home が不要になります)。

を追加してください。 eclipse.ini :

-eclipse.keyring 
C:\eclipse\keyring.txt

によって追跡されています。 バグ300577 で解決済みです。 その他のSO質問 .


デバッグモード

待てよ、Eclipseの設定ファイルは1つじゃないんだ。

に追加すると eclipse.ini というオプションがあります。

-debug

を有効にすると デバッグモード を検索し、Eclipse が 別の 設定ファイル .options ファイルで、いくつかの OSGI オプションを指定することができます。

そして、ドロップインフォルダを通じて新しいプラグインを追加するときに最適です。

.optionsファイルに、このように以下の設定を追加してください。 ブログ記事 " ドロップイン診断 " :

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

P2 は、どのようなバンドルが見つかったかを dropins/ フォルダ、どのような要求が発生したか、インストールの計画はどうなっているか。実際に何が起こったのか、何が悪かったのか、詳細な説明にはなっていないかもしれませんが、どこから手をつければいいのか、しっかりとした情報を与えてくれるはずです。

  • あなたのバンドルはプランに含まれていましたか?
  • インストール時の問題か(P2のせい)
  • それとも、その機能を搭載するのは最適ではないのでしょうか?

由来は Bug 264924 - [reconciler] ドロップイン問題の診断ができない。 のように、最終的に以下の問題を解決しています。

Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5

OCLはEMFに依存しており、EMFは欠落しているため、これは問題のある構成です。

3.5M5では、この問題に対する診断ができません。

eclipseを起動します。

明らかな問題はありません。エラーログには何もありません。

  • Help / About / Plugin 詳細表示 org.eclipse.ocl.doc でなく org.eclipse.ocl .
  • Help / About / Configuration の詳細には、(診断のための)言及はありません。 org.eclipse.ocl .
  • Help / Installation / Information Installed Software は言及されていません。 org.eclipse.ocl .

素敵なエラーマーカーはどこにあるのでしょうか?


マニフェスト・クラスパス

こちらをご覧ください ブログ記事 :

  • Galileo(aka Eclipse 3.5)では、JDTはプロジェクトのビルド・パスに追加されたライブラリーのマニフェスト・クラスパスを解決するようになりました。これは、ライブラリがプロジェクトのビルドパスに直接追加されたか、JDTが提供するユーザーライブラリ機能またはサードパーティが実装したものなどのクラスパスコンテナを介して追加されたかに関係なく機能しました。
  • Heliosでは、この動作が変更され、マニフェストのクラスパス解決からクラスパス・コンテナが除外されました。

つまり、いくつかのプロジェクトはHeliosでコンパイルできなくなる可能性があるということです。

Galileoの動作に戻したい場合は、追加してください。

-DresolveReferencedLibrariesForContainers=true

参照 バグ305037 , バグ313965 および バグ 313890 を参考にしてください。


IPV4スタック

これは SO質問 は、プラグインアップデートサイトにアクセスできない場合の修正の可能性について言及しています。

-Djava.net.preferIPv4Stack=true

あなたの設定に役立つかもしれないので、ここに記載します。


JVM1.7x64の最適化の可能性

この記事 を報告します。

ちなみに、1.7 x64 JVM n Windowsでのベンチテストにおいて、私がこれまでに見つけた最も高速なオプションは以下のとおりです。

-Xincgc 
-XX:-DontCompileHugeMethods 
-XX:MaxInlineSize=1024  
-XX:FreqInlineSize=1024 

でも、まだまだ現役なんです...。