# Eclipse langsam/unbrauchbar bei größeren Quelldateien?



## peterfarge (24. Nov 2014)

Hallo Forum,

ich programmiere selten mit Java. Aktuell konvetiere ich eine .net Komponente nach Java.
Neuerdings ist Eclipse sehr langsam, die Autovervollständigung dauert 20 Sekunden bis sie aufklappt. Wenn ich mit der Maus über eine unterkringelte Zeile fahre, dann friert Eclipse komplett ein und erholt sich nicht mehr, ich muß Eclipse mit dem Taskmanager abschießen. Und ich bekomme Fehler in der IDE angezeigt wie:


> Save All Failed
> Java heap space


oder


> An internal error occurred during: "Requesting Java AST from selection". GC overhead limit exceeded


oder


> The 'org.eclipse.jdt.ui.TemplateProposalComputer' proposal computer from the 'org.eclipse.jdt.ui' plug-in did not complete normally. The extension took too long to return...



Aktuelle bearbeite ich ein WSDL SOAP Client namens JSServiceStub.java. Diese Datei ist 3.5 MB groß und wurde mit Axis 2 generiert. Kann es sein das Eclipse bei größeren Quelltextdateien in die Knie geht? Ich hatte diese große Datei schon mehrere Tage ohne Probleme im Projekt, nur heute wo ich anfange die Datei etwas zu bearbeiten kriege ich diese Probleme.
Ich habe schon den alten Workspace Ordner gelöscht und das Projekt in einen neuen Workspace gelegt. Außerdem habe ich Eclipse komplett gelöscht und einmal die 64 Bit Version und einmal die 32 Bit Version auf dem Rechner neu installiert. Ich habe den Java Ordner einmal von jdk1.8.0_25 auf jre1.8.0_25 umgestellt. Das Porblem bleibt weiter bestehen.


Vielen Dank

Peter

Edit: Ich versuche die 3.5 MB Datei zu debuggen. Dort befindet sich nur eine Klasse drin. Bestimmte Funktionen kann ich nicht debuggen, auch wenn ich Haltepukte setze. zB eine Funktion die sich in Zeile 75564 befindet. Wenn ich die Funktion ausschneide und ganz am Anfang der Klasse setze, dann kann ich die Funktion auf einmal debuggen. Also hat Eclipse ein Problem mit großen Klassen?


----------



## diggaa1984 (24. Nov 2014)

kannst du mal zeigen was die Eclipse.ini sagt? Vielleicht musst der VM mehr zugestehen


----------



## peterfarge (24. Nov 2014)

Die Eclipse.ini sieht so aus:


> -startup
> plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
> --launcher.library
> plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20140603-1326
> ...



Ich habe die letzten Zeilen auf 1024 MB RAM hochgesetzt. 2GB gehen nicht, weil ich jetzt gerade bei der 32 Bit Eclipse Version hängen geblieben bin.


----------



## diggaa1984 (24. Nov 2014)

und ist besser?


----------



## peterfarge (24. Nov 2014)

Ich habe die Funktion wieder ans Ende der Datei gepackt. Anstatt dort hinein zu springen springt er irgendwo im Code herum, er arbeitet unsichtbare Codezeilen ab und zeigt ganz andere Codezeilen an. Aber immerhin friert Eclipse jetzt nicht mehr ein und ich bekomme keine Exceptions mehr.


----------



## Joose (24. Nov 2014)

Dann debuggst du alten Code ;-) und das Projekt wurde nicht neu gebuildet.


----------



## Thallius (24. Nov 2014)

eine 3.5MB grosse Source-Datei ist ein klarer Beweis für ein schlechtes Design.

Lagere Teile aus indem du weitere Klassen definierst dann klappts auch mit Eclipse und der Code wird viel einfacher zu warten...

Gruß

Claus


----------



## Joose (24. Nov 2014)

Thallius hat gesagt.:


> eine 3.5MB grosse Source-Datei ist ein klarer Beweis für ein schlechtes Design



3.5 MB ist zwar schon extrem, aber solche generierten Stub Klassen schauen teilweise leider echt heftig aus (hatte auch mal damit zu tun)


----------



## peterfarge (25. Nov 2014)

Es gab zumindest mal eine Option in Eclipse wo man den Build Prozess auf manuell wie im Visual Studio setzen konnte, diese Option habe ich diesmal nicht aktiviert. Möglicherweise braucht Eclipse Minuten um die 3.5 Klasse zu kompilieren...

Wie Joose bereits angedeutet hat: Die 3.5 MB Klasse wurde generiert. Ich habe mittlerweile herausbekommen das man mit dem -u Schalter die große Klasse in kleine Klassen zerteilen kann. Ärgerlicherweise muß ich jetzt mein Textprojekt nochmal komplett überarbeiten.

Im Großen und Ganzen ist meine Frage beantwortet. Vielen Dank Euch allen


----------

