Eclipse вылетает с «Невозможно создать новую нить» - есть идеи? (мои настройки и информация внутри) - PullRequest
15 голосов
/ 20 июля 2011

У меня проблемы с «Затмением», которое я постоянно испытываю (и в целом вялый), и мне было интересно, сможет ли кто-нибудь дать мне какое-то понимание. Полученное сообщение: «Невозможно создать новый собственный поток». В этот момент мне предлагается перезапустить Eclipse. Это происходит примерно 5 раз в день.

Я использую Ecliipse Helios Service Release 2 (с плагином Flash Builder) на:

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, которые были украдены из этой темы : Каковы наилучшие настройки jvm для eclipse :

-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 - ошибка буквально только что произошла (исключение необработанного цикла обработки событий), это после настройки моего eclipse.ini (я изменил Xss на 1m, MaxPermSize на 384m, Xms на 512). Вот дополнительная информация, которую вы запрашивали, трассировка стека исключений:

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)

Ответы [ 2 ]

16 голосов
/ 20 июля 2011

Похоже, что недостаточно памяти для нового стека потоков. В Windows пространство процесса составляет 2 ГБ . Для кучи вы изначально выделяете 1 Гб (опция -Xms), поэтому она заблокирована с самого начала. Минус 256 МБ для классов (PermSize), минус издержки JVM, которые могут достигать 0,5 ГБ. Таким образом, в результате ваши потоки имеют только около 256 МБ стеков, что составляет максимум 64 потока (256/4 м).

Решение: Попробуйте уменьшить размер стека до -Xss1024k или уменьшить начальный размер кучи (-Xms) .

Связанное чтение о OutOfMemory: невозможно создать поток

В качестве примечания: -XX: MaxPermSize = 256m выглядит слишком маленьким для Eclipse для EE. Лучше установить на 384.

Ура, Max

0 голосов
/ 08 октября 2014

У меня также были проблемы с Eclipse Luna на Fedora 20. Я много читал о различных вариантах памяти и все еще не мог понять проблему. Это сводило меня с ума.

Наконец, я понял, что по умолчанию количество процессов, которые обычный пользователь может иметь в Fedora, очень ограничено. Содержимое limit.d / 90-nproc.conf:

*          soft    nproc     1000

Повышение этого до 5000 исправило мои проблемы "Невозможно создать новую нить".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...