Eclipse / ADT Plugin Out of Memory

K

Kvothe

Fortgeschrittenes Mitglied
306
Hallo zusammen,

ich beginne gerade damit mich etwas mit Android App Development zu beschäftigen, bekomme aber Eclipse mit dem ADT Plugin nicht stabil zu laufen.

Wenn ich z.B. einen Layout Editor aufmache, einen Java Source Editor und dann vll noch compile holt sich der Eclipse Prozess knapp 2GB Ram und schmiert ab (mit gerade mal 2 offenen Dateien).
Oft schmierts auch schon ab wenn ich nach dem Start nur einen Layout Editor aufmache (und holt sich dabei immer knapp 2GB Ram).

Ich habe schon einige Eclipse Versionen durch, sowohl 32 als auch 64 Bit, jeweils mit JDK 1.6_31, immer das selbe Problem (auch auf mehreren Rechnern, Windows 7 und Server 2008).
Natürlich hab ich jedesmal einen cleanen Workspace und ein neues Projekt erstellt (auch wenn das nicht nötig sein dürfte, bin schon etwas genervt).

Als vmargs hab ich schon 768MB MaxPermSize und 4GB Max Heap angegeben, bringt alles nichts.
Mir wärs ja auch wurscht wenn Eclipse sich 4Gig Ram nimmt, ich hab in allen Rechnern 8 GB Ram, mehr als 2 schaft die Java VM aber auch in der 64 Bit Version irgendwie nicht, mal abgesehen davon, dass es eigentlich nicht so viel Ram brauchen dürfte aber gut.

Hatte vll jemand ähnliche Probleme oder kann sich wer vorstellen woran das liegen könnte?

Die Stack Traces sind leider wenig hilfreich:

Code:
!ENTRY org.eclipse.ui 4 0 2012-04-11 00:03:04.030
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.OutOfMemoryError: PermGen space
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(Unknown Source)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at org.eclipse.jdt.internal.formatter.CodeFormatterVisitor.<init>(CodeFormatterVisitor.java:198)
	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.formatCompilationUnit(DefaultCodeFormatter.java:239)
	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.format(DefaultCodeFormatter.java:163)
	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.format(DefaultCodeFormatter.java:146)
	at org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.reformat(CodeFormatterUtil.java:288)
	at org.eclipse.jdt.internal.ui.text.java.JavaFormattingStrategy.format(JavaFormattingStrategy.java:67)
	at org.eclipse.jface.text.formatter.MultiPassContentFormatter.formatMaster(MultiPassContentFormatter.java:193)
	at org.eclipse.jface.text.formatter.MultiPassContentFormatter.format(MultiPassContentFormatter.java:142)
	at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:977)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1535)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:191)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:200)
	at org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:128)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:126)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)

Code:
!ENTRY org.eclipse.ui 4 0 2012-04-10 23:55:51.725
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.OutOfMemoryError: PermGen space
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(Unknown Source)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(Unknown Source)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)

VG,
Kvothe
 
Schraub's doch einfach mal weiter hoch?
Meine Parameter:
Code:
-XX:PermSize=512M
-XX:MaxPermSize=1024m
-Xms1024m
-Xmx4096m

Die aktuelle Version ADT hast du vermute ich mal?
 
Jawoll, ich hab vom Plugin die v18.

Mittlerweile glaube ich das Problem gelöst zu haben, anscheinend war in meiner eclipse.ini ein Typo, sodass das MaxPermSize Argument ignoriert wurde und standardmäßig ist das wohl wahnwitzig niedrig.
Beim Aufmachen eines Editors ist dann der PermGen space ausgegangen und eclipse abgeschmiert.

Jetzt läufts auch mit einer MaxPermSize von 512 einwandfrei.

VG
Kvothe
 

Ähnliche Themen

5
Antworten
0
Aufrufe
1.117
586920
5
Tiefkuehlpizza
Antworten
2
Aufrufe
931
Tiefkuehlpizza
Tiefkuehlpizza
J
  • Juleru
Antworten
8
Aufrufe
478
Juleru
J
Zurück
Oben Unten