Eclipse + PyDev und Probleme mit Arbeitsspeicher

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Dingels
User
Beiträge: 61
Registriert: Dienstag 23. Dezember 2008, 19:50

Schönen guten Abend liebe Python-Freunde,

ich habe schon seit längerer Zeit ein nerviges Problem mit dem PyDev-Plugin in Eclipse. Ich schreibe an einem Python-Modul, das mittlerweile schon über 3000 (!) Zeilen hat. Ich vermute, das sind zu viele für Eclipse oder das Plugin. Ich arbeite unter folgender Umgebung:

- Mac OS X Snow Leopard (10.6.4)
- Eclipse Helios 3.6 Mac OS X Cocoa 64bit (das Package Eclipse IDE for Java Developers)
- Java SDK 1.6
- Python 2.6.5
- PyDev 1.6.0
- 4 Gigabyte Arbeitsspeicher

Mittlerweile sehe ich andauernd den Beachball (das Pendant zur Windows-Sanduhr). Eclipse reagiert nicht mehr und nach einiger Zeit ploppt ein Hinweisfenster auf mit der Info: java.lang.OutOfMemoryError: java heap space. Natürlich habe ich mich informiert und habe herausgefunden, dass sich in der Datei eclipse.ini die RAM-Verwaltung konfigurieren lässt. Aber selbst wenn ich 1 GB als maximum heap size angebe, habe ich weiterhin den Beachball. Schließlich habe ich einige Funktionen wie die automatische Code-Vervollständigung deaktiviert, weil ich dachte, dass so RAM eingespart werden würde, aber es scheint nicht so zu sein, denn das Problem besteht weiterhin.

Hat jemand von euch mit dieser Thematik auch schon so seine Probleme gehabt und kann mir sagen, wie ich wieder flüssig in Eclipse coden kann, ohne meinen Code auf mehrere Module aufteilen zu müssen?

Vielen Dank. :)
problembär

Zeit, auf vim umzusteigen ;).
Dingels
User
Beiträge: 61
Registriert: Dienstag 23. Dezember 2008, 19:50

problembär hat geschrieben:Zeit, auf vim umzusteigen ;).
Sorry, aber ich hab weder die Zeit noch die Nerven, tausende Tastenkombis auswendig zu lernen, damit ich diesen Editor korrekt bedienen kann. Ich möchte schon gerne bei Eclipse bleiben. Ich hab mir nahezu alle IDEs angesehen, die es gibt und komme nur mit Eclipse und PyDev richtig zurecht.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich habe keine praktischen Erfahrungen mit Eclipse und Pydev, aber... bei Java gibt es zwei Arten von Speicher: Den normalen Heap und der PermSpace. Letzterer ist in der Regel bei Eclipse das Problem und der Grund für eine OOME (sagt einem ab Java 6 aber eigentlich die Exception auch). Also nicht die Option -Xmx hoch setzen, sondern -XX:MaxPermSize=.

Ich habe gerade mal in Eclipse.app/Contents/MacOS/eclipse.ini geschaut. Bei mir steht da 256m für permspace und 512m für den normalen Heap (außerdem 40m für den Stack). Das erscheint mir eigentlich mehr als ausreichend, selbst bei einer 64-bit-VM.

Ich habe mit Eclipse 3.5 und Pydev 1.5.x ohne Probleme eine Datei mit 4296 Zeilen bearbeitet.

Stefan
Dingels
User
Beiträge: 61
Registriert: Dienstag 23. Dezember 2008, 19:50

Danke für den Tip, Stefan. Die MaxPermSize-Einstellung habe ich auch geändert auf 256 MB, aber das löste das Problem auch nicht direkt. Ich habe gerade noch mal in die PyDev-FAQ geschaut und folgendes entdeckt:
When I do a code-completion, Pydev hangs, what can I do?

Pydev does most of its things in the java side, but some information can only be gotten from the python side (mainly builtins), so, in order to get that info, pydev creates a shell and communicates with it through sockets.

The main problems when that happens are:

1. There's a firewall blocking the communication to the shell

2. In Linux, some kernels do not allow ipv4 utilization, which may make Pydev fail.
To enable it, do: echo 0 > /proc/sys/net/ipv6/bindv6only

3. The timeout to connect is too smal.
It depends upon the "Timeout to connect to shell" in the code-completion preferences (window > preferences > Pydev > Code completion)
Punkt 3 habe ich gerade getestet und tatsächlich: Nach dem Erhöhen des Timout Connect ist es etwas besser geworden. PyDev hängt immer noch ein wenig, aber zumindest kann ich nun einigermaßen weiterarbeiten. Aber trotzdem muss noch irgendeine andere Komponente an diesem Problem beteiligt sein. Vielleicht hat es doch etwas mit OS X zu tun.
Dingels
User
Beiträge: 61
Registriert: Dienstag 23. Dezember 2008, 19:50

Mhm...vermutlich arbeitet hier im Forum niemand mit OS X. :?:

Falls es dennoch jemanden interessieren sollte:
Ich habe mal die 32bit Cocoa Version von Eclipse getestet und damit sind die Aussetzer fast verschwunden. In einigen wenigen Fällen treten sie noch auf, aber nur für ein paar Sekunden. Das Java SDK 1.6 von Apple ist übrigens auch 64bit wie OS X selbst. Vermutlich verträgt sich PyDev noch nicht so gut zusammen mit diesen drei 64bit-Komponenten. Mal schauen, vielleicht komm ich irgendwann noch dahinter. :K
Antworten