it-swarm-ja.com

Eclipse(Kepler)は定期的に数秒間応答を停止します

プラットホーム

8GBのRAMを搭載したDellE6500で実行されている64ビットのWindows7ProfessionalでEclipseKepler 4.3.2(.M20140221-1700)を使用しています。 Java VMは1.7_u51です。Java自動更新はWindowsUpdateと同様にアクティブです。

症状

私の知る限り、彼らは4月9日に始まりました。以前はすべてが完全に機能していました。一部のファイル(すべてではありませんが、.html、.php、.js、さらには.css)を編集すると、Eclipseが数秒間応答を停止することがあります。

Ctrl-Spaceでコンテンツアシストを呼び出すと、フリーズが発生するファイルで即時フリーズ(= /// =)がトリガーされるため、コンテンツアシストとの関連があります

.metadata/.logファイルはメモリ不足エラーを報告しますが、それは赤いニシンであると信じています-これは別の症状であり、本当の原因ではありません:

!ENTRY org.Eclipse.e4.ui.workbench 4 0 2014-04-10 12:55:13.296
!MESSAGE 
!STACK 0
org.Eclipse.e4.core.di.InjectionException: Java.lang.OutOfMemoryError: Java heap space
    at org.Eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.Java:63)
    at org.Eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.Java:243)
    at org.Eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.Java:224)
    at org.Eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.Java:132)
    at org.Eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.Java:167)
    at org.Eclipse.core.commands.Command.executeWithChecks(Command.Java:499)
    at org.Eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.Java:508)
    at org.Eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.Java:213)
    at org.Eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.Java:285)
    at org.Eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.Java:504)
    at org.Eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.Java:555)
    at org.Eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.Java:376)
    at org.Eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.Java:322)
    at org.Eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.Java:84)
    at org.Eclipse.swt.widgets.EventTable.sendEvent(EventTable.Java:84)
    at org.Eclipse.swt.widgets.Display.filterEvent(Display.Java:1262)
    at org.Eclipse.swt.widgets.Widget.sendEvent(Widget.Java:1056)
    at org.Eclipse.swt.widgets.Widget.sendEvent(Widget.Java:1081)
    at org.Eclipse.swt.widgets.Widget.sendEvent(Widget.Java:1066)
    at org.Eclipse.swt.widgets.Widget.sendKeyEvent(Widget.Java:1108)
    at org.Eclipse.swt.widgets.Widget.sendKeyEvent(Widget.Java:1104)
    at org.Eclipse.swt.widgets.Widget.wmChar(Widget.Java:1525)
    at org.Eclipse.swt.widgets.Control.WM_CHAR(Control.Java:4723)
    at org.Eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.Java:344)
    at org.Eclipse.swt.widgets.Control.windowProc(Control.Java:4611)

最初は、問題はメモリ不足Eclipseのヒープサイズを増やした だと考えていました。これは実際には延長された凍結時間です。

これまでの仮説

canがコンテンツアシストによってトリガーされ、サブルーチンが放棄するまでメモリリークを引き起こす無限ループが発生することが発生しています。使用可能なメモリを増やすことで、Eclipseに4GBを埋める前に1分を費やさせることができますRAMそしてあきらめる;そして、ヒープを40 Mbに減らすことで、問題をいくらか改善できます。中止するのに4〜5秒かかります(ただし、他の目的のために大きなヒープが必要なので、これは実行可能な回避策ではありませんが、問題を解決する方法ではありません)。

試みと調査

  • トラブルが始まった2014年4月8日は火曜日のパッチでした。その頃、以下のアップデートがプッシュされました。これらはいずれも、Eclipseに影響を与える可能性のあるものとは関係がないようです。 2922229と2929437をロールバックして無駄にした後、再インストールしました。

    • KB2928562 EFS関連
    • .BATおよび.CMDに関連するKB2922229MS14-019。
    • KB290878 iSCSI関連
    • KB2929437IE11関連
    • KB2830477RemoteApp関連
    • KB2800095スマートカード関連
    • KB2936068 MS14-018IE11関連
    • KB2923545 RDP8.1での接続の信頼性
  • 最初に自動アクティブ化を無効にし、次にすべてのプロポーザルタイプ(Word、テンプレート、その他のJavascript)のチェックを外して、HTMLおよびJavascriptエディターでコンテンツアシストを無効にすると、問題は軽減されますが、解決されません。

  • Eclipseをハウスクリーニングモードで起動する通常のブードゥーテクニック。これは、最も厄介な問題を修正するために使用されていました(Eclipse -clean -clearPersistedState)もほとんど役に立たなかった。

  • Eclipse.iniをクリアしても結果は得られませんでした。

  • FileMon/ProcMon/Wiresharkを使用してファイルとネットワークのアクティビティを監視しても、関連するものは何も見つかりませんでした。

赤ニシン

  • 上で詳述したように、ヒープサイズは解決策ではありません。

  • 関連するかどうかわからない別のエラー、「エラーデコード問題識別子1073741824」が発生しました。 16進数で0x40000000であるため、私には偽物に見えます。とにかく、グーグルは関連するものを何も生み出さず、元のタイプミス(識別子の代わりに問題idenfierと呼ばれる)を含めて強化されましたそれは 偽のコード だという私の意見。

次のステップ

これまでに見つかった手がかりが不足しているため、何か本当に明らかなものが欠けていると思いますが、「焦土作戦」戦略に進む前に、Eclipseを完全に削除して再インストールし、再インポートしてください私のすべてのプロジェクト-私は自分よりも賢い頭に尋ねることにしました。

その間、Eclipseから不要なプラグインとそれほど必要ではないプラグインをすべて削除しようとします。

それがすべて失敗した場合は、NetBeans8を試してみようと思います。

5
LSerni

エピローグ

計画通り、ケプラーを取り外して再インストールしました...何の効果もありませんでした。

そのため、「Operation Scorched Earth」を設定し、再インストールする必要のあるすべてのソフトウェアを発明しているときに、あることに気づきました。 )had a Java updateほぼ同じ期間に。

だから私:

  • 再びケプラーを削除し、
  • 削除Javaも、
  • レジストリ最適化(PirisoftのCCleaner)を実行しました。これにより、レジストリに関するあらゆる種類の問題が見つかりました(これは、いくつかの怪しげな「オプティマイザー」では通常であり、CCleanerでは本当に何か問題があります。私がお勧めできるもう1つの優れたクリーナーはAuslogicsです。
  • 最新のJavaアップデート、
  • keplerを再インストールしました
  • Eclipse.iniで、新しいVMを使用していたことを確認しました
  • プロジェクトを再インポートしました
  • それをテストしました。ここまでは順調ですね...
  • さまざまなプラグインをすべて再インストールしました
  • 他のすべてのプロジェクトを再インポートしました
  • それらを1つずつテストしました
  • そして今回はうまくいきました!

アップデートでしたか?レジストリのクリーニングでしたか? notに正しいVMを最初に設定してもらうことはできますか(つまり、私のverificationは実際には構成の変更)でしたか?正直なところわかりません。

今私は時々リモートに格納されている1つのプロジェクトでまだ問題があります(つまり、ファイルはVPN経由でアクセスされます)。 Eclipseがネットワーク遅延にうまく対処できないことを意味しているだけだと確信しています。しかし、それ以外の場合はフリーズしません。

1
LSerni

この問題は、4GB RAMがインストールされているIntelCore i5 CPUでも発生していました。約50%RAMの使用量で、CPUの過負荷はありませんでした。マウスイベントをコマンドするたびにEclipseがフリーズしていました。metadata/ .logがIDEエラーでいっぱいであることに気づきました。

そのため、すべてのプラグインをアンインストールすると、Eclipseがフリーズを停止しました。 SubversionプラグインとCDTプラグインのみをインストールしましたが、Eclipseは引き続き正常に機能しています。どのプラグインがフリーズを引き起こしていたのか、まだ正確にはわかりません。

1
Rodrigo