12

かなり大きなコードベースがあります(150以上のプロジェクト、400000行以上のJavaコード、いくつかのGroovyおよびGradleコード、いくつかのPerlコード、いくつかのXML、多くのJSPなど)。私はSpringToolsStudio 2.6でこれらすべてのプロジェクトを開くことができ、それにGroovy、Perl、Checkstyle、PMD用のプラグインもいくつか追加しました。

そして問題は、Eclipseが私のCPUを常にビジー状態に保っているということです。そして、私が何かを更新するとき、それは本当に遅いです、それはゆっくりと構築されています、どんな種類のUI操作も遅れて起こります。

また、64ビット、8 GBのRAMを搭載し、64ビットバージョンのSTSを実行し、Eclipseに2 GBを割り当てています(ただし、1 GBのヒープより高くなることはありません)。

だから、私の最初の質問は、何がそれを遅くしているのかを判断する方法がありますか?そして、あなたたちの何人かは、単一のワークスペースでそのような大きなコードベースを扱うことに成功しましたか?

Eclipseを実行するJVMのスレッド(jconsoleを使用)を調べてみましたが、そこに何も興味がありません。

4

3 に答える 3

8

私はいくつかの提案をします-これらは簡単な順になっています。プラグインが何であるかを理解し、そのプロジェクトに参加して修正するか、サポートリストに嫌がらせメールを送信することに夢中になっている場合は、以下の「プロファイル」にスキップすることをお勧めします。

コンソールを確認してください

コマンドラインからEclipseを開始する場合(つまり、タイプeclipse)、例外がスローされる場合は、ここに例外が表示されます。プラグインが繰り返し失敗し、多くの例外をスローすることによって、速度が低下することがあります。修正できる場合もあれば、そのプラグインを削除する必要がある場合もあります。

RAMをブースト

私たちはGCが大好きですが、それはゆっくりとした死を引き起こします。GCの利点は、プログラムがメモリ不足になることがないことです。ユーザーは、プログラムがロックされたと考えて、実際にRAMが不足する前にプログラムを強制終了するためです。したがって、PermGenおよびその他のEclipseメモリ設定を増やしてみてください:http ://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F

新しいワークスペースを作成する

私はしばしばあきらめて、ワークスペース全体を削除/再作成します。プラグインは非常に多く、デバッグが非常に困難になる可能性があり、多くの場合、ワークスペースディレクトリでゴミが発生し、問題が発生し続けます。

Eclipseを無駄のない状態に保つ

Eclipseを本当にスッキリさせたい場合は、単一のプロジェクトのインストールを作成し、必要なプラグインのみを追加します。非EEバージョンから始めることができれば、すでに肥大化ははるかに少なくなっています。

プロファイルする

Sun JDKに含まれているVisualVM(おそらくすでにインストールされています)を使用して、どのクラスが最もプロセッサ時間を消費しているか、どのオブジェクトがメモリを消費しているか(およびそれらを作成したもの)を確認できます。

VisualVMを起動すると、アプリケーションにEclipseが表示されます。Eclipseエントリを右クリックし、VisualVM内でEclipseを「開く」。これで、プロファイラーをアタッチして、使用されているクラスを確認できます。

プロファイリングはすべてを遅くします(非常に!)ので、可能な限り最小の例から始めたいと思うかもしれません-または非常に辛抱強く。特にプロファイリングの開始時には、クラスを「インストルメント化」する(プロファイリングを可能にするためにバイトコードを挿入する)ため、長い時間がかかります。

于 2012-12-16T18:50:51.067 に答える
6

デバッグを有効にすることでEclipseが何をしているかを知る1つの方法。eclipseビルダーのデバッグに関する情報がここにありますが、プロセスは一般的です。つまり、コマンドライン$ eclipsec –debug> log.txtからeclipseを開始し、 .optionsファイルを使用して特定のプラグインのデバッグを有効にする必要があります。'update'および'build'操作をもう少し詳しく見てみたいと思います。

もう1つのオプションは、MAT(Memory Analyzer)YourKitなどのツールを使用することです。YourKitは非常に便利だと思います。たとえば、YourKitでCPUプロファイリングを有効にしてから、Eclipseでアクションを実行することができます。アクションが完了したら、スナップショットを取り、YourKitで分析を行うことができます。注意点は、YourKitプロファイラーをEclipseに接続すると、Eclipseの速度がさらに低下することです。

1つのワークスペースに150以上のプロジェクトがあると言っても、少々大変です。可能であれば、コンポーネントごとに1つのワークスペースをセットアップし、残りのプラグインをターゲットプラットフォームに配置する必要があります。すべてのワークスペースは、単一のターゲットプラットフォームを共有できます。150以上のプロジェクトでは、大量のクラスファイルを生成する必要があるため、完全なワークスペースビルドだけでもかなりの時間がかかる可能性があります。つまり、大量のディスクIOが発生し、EclipseではSSDしか使用できません:)

于 2011-06-08T14:18:57.493 に答える
0

Eclipse 2019-09は、新しい方法を提案しています。

EclipseSDKでのUIフリーズの自動検出

Eclipse SDKは、新しいワークスペースのデフォルトで、エラーログビューにUIフリーズのスタックトレースを表示するように構成されています。
この情報を使用して、EclipseIDEの遅い部分を識別して報告できます。

https://www.eclipse.org/eclipse/news/4.13/images/freeze-event.png

General > UI Responsiveness Monitoring以下に示すように、設定ページのオプションを使用して、監視を無効にしたり、設定を微調整したりできます。

https://www.eclipse.org/eclipse/news/4.13/images/ui-monitor-preference.png

于 2019-09-21T22:07:41.753 に答える