2011-07-19 13 views
15

私は日常的にEclipseに問題を抱えています(一般的には鈍いです)。誰かが私に洞察力を与えることができるかどうか疑問に思っていました。スローされるメッセージは"新しいネイティブスレッドを作成できません"その時点でEclipseを再起動するように求められます。これは1日に5回ほど起こります。Eclipseは「新しいネイティブスレッドを作成できません」というクラッシュを起こします。 (私の設定と情報が入っています)

私は上(Flash Builderのプラグインで)Ecliipseヘリオスサービスリリース2を使用しています:このthread: What are the best jvm settings for eclipseから盗まれた

Windows Vista Business 
Processor: Intel Core 2 Duo T7500 @ 2.20 GHz 
Memory (RAM): 4.00 GB 
System Type: 32-bit Operating System 

マイたeclipse.iniの設定:任意のための

-startup 
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222 
-product 
org.eclipse.epp.package.jee.product 
--launcher.defaultAction 
openFile 
-showsplash 
org.eclipse.platform 
-vm 
C:/jdk1.6.0_25/jre/bin/client/jvm.dll 
-vmargs 
-Dosgi.requiredJavaVersion=1.6 
-Declipse.p2.unsignedPolicy=allow 
-Xmn256m 
-Xms1024m 
-Xmx1024m 
-Xss4m 
-XX:PermSize=256m 
-XX:MaxPermSize=256m 
-XX:CompileThreshold=5 
-XX:MaxGCPauseMillis=10 
-XX:MaxHeapFreeRatio=70 
-XX:+CMSIncrementalPacing 
-XX:+UnlockExperimentalVMOptions 
-XX:+UseG1GC 
-XX:+UseFastAccessorMethods 
-Dcom.sun.management.jmxremote 

感謝助けて!

編集:

@normalocity - エラーが文字通り起こった(未処理のイベントループ例外)、これは(私が512にのX ms、384メートルにMaxPermSizeを、1メートルにXSSを変更)私たeclipse.iniを調整した後です。ここでは、あなたが求めた追加情報は、例外スタックトレース:

java.lang.OutOfMemoryError: unable to create new native thread 
at java.lang.Thread.start0(Native Method) 
at java.lang.Thread.start(Thread.java:640) 
at org.eclipse.jface.text.contentassist.ContentAssistant$AutoAssistListener.start(ContentAssistant.java:263) 
at org.eclipse.jface.text.contentassist.ContentAssistant$AutoAssistListener.keyPressed(ContentAssistant.java:345) 
at com.adobe.flexide.editorcore.contentassist.FlexContentAssistant$FlexAutoAssistListener.keyPressed(FlexContentAssistant.java:47) 
at org.eclipse.jface.text.contentassist.ContentAssistant$InternalListener.verifyKey(ContentAssistant.java:811) 
at org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:489) 
at org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65) 
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) 
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774) 
at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5957) 
at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5656) 
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) 
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103) 
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099) 
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1508) 
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4270) 
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) 
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4162) 
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) 
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) 
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) 
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655) 
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) 
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) 
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) 
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) 
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) 
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) 
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) 
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) 
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) 
at org.eclipse.equinox.launcher.Main.run(Main.java:1408) 
+0

(1)エラーのより詳細なバージョンがありますか?もしそうなら、投稿してください。 (2)あなたはそれが1日に数回起こると言います。関連イベントが発生したとき(Eclipseがコード補完を表示しようとしているとき、「保存」を押すとき、ウィンドウを閉じるときなど)は何ですか? – jefflunt

+1

私は私の職場で全く同じ問題を抱えていました。 32ビットWindows Server 2003から64ビットWindows 7/2008に移行したときに始まりました。 Eclipseには-Xmx1380mを実行するため、多くのメモリが必要な自作のEclipseプラグインを使用しています。 64ビットWindowsでは、 'OutOfMemoryError:新しいネイティブスレッドを作成できませんでした.'と' SWTError:No handles handles'でクラッシュし始めました。 -Xssで遊ぶことは役に立たなかった。 Xmxを減らすこと(いくつかのブログが示唆しているように)は選択肢ではありませんでした。最終的には、64ビットEclipseにアップグレードし、-Xmxを2〜3GBに増やすことで、それを回避しました。 –

+0

-Xssオプションを削除してみてください。 – Max

答えて

16

新しいスレッドスタックのための十分なメモリがないようです。 Windowsでは、プロセス・スペースは2GBです。ヒープの場合、最初に1Gb(-Xmsオプション)を割り当てるので、最初からロックされています。クラス(PermSize)のマイナス256Mbから、JVMのオーバーヘッドを差し引いたもので、最大0.5Gbです。その結果、スレッドの最大スレッド数は256です(256/4m)。

解決策:スタックサイズを-Xss1024kに下げるか、または初期ヒープサイズ(-Xms)をに減らしてください。ちなみに、-XX約OutOfMemory: unable to create thread

を読ん

関連:MaxPermSizeを= 256メートルは、EEのためのEclipse用の小さすぎる見えます。より良い384

乾杯、 マックス

+0

私はこれ以上ナッツをしていました。 – jambriz

+0

@max私のスタックサイズを下げる方法Xss ?? –

0

に設定しますまた、私は別のメモリオプションについて多くを読んで、まだ問題を把握できなかったのFedora 20にはEclipseのルナとのトラブルがありました。それは私を夢中にさせた。

最後に、デフォルトでは、通常のユーザーがFedoraに持つことができるプロセスの数は非常に限られていることに気付きました。 limits.d/90-nproc.confの内容:

*   soft nproc  1000 

5000にこれを上げるには、問題の私の "新しいネイティブスレッドを作成できません" 固定しました。

関連する問題