Kategorien
Alex

Geburtstagskind

Hi!

Nachdem mein Cousin seinen ersten Eintrag hinterlassen hat und mir so nett zum Geburtstag gratulierte, melde ich mich auch mal zu Wort….

Danke an Alle die mir eMails, SMS und Anrufe gesendet und hinterlassen haben. So viele habe ich glaube ich schon lange nicht mehr bekommen. Ich habe mich riesig gefreut von Euch zu lesen und hören!

Auf ein neues Jahr – Euer Alex

Kategorien
Borni Java und Co

Java-Debugging in Eclipse sehr langsam…

Tja, so kann es kommen: Ich habe mich schon seit Wochen (Monaten?) darüber gewundert, dass Eclipse beim Debuggen auf meinem Arbeitsrechner sehr langsam ist, wenn man zusätzlich die Variables-View dargestellt hat. Auf den Rechnern meiner Kollegen und bei mir zu Hause war alles bestens.

Das Debuggen war so behäbig, dass bei „schnellem“ Gebrauch von F6 (Step foward) oder dergleichen Eclipse den „Focus verloren“ hat und man explizit wieder auf den aktuellen StackFrame in der Debug-View klicken musste, um weiter steppen zu können….. very annoying!

Ich hatte die Eclipse-Plugins ausgedünnt und sogar meine JDKs neu installiert. Nichts half. Nach jedem Step, der ein Neudarstellen der Werte der Variablen in der Variables-View notwendig machte oder beim Browsen in den Tiefen der Objekte selber ging die CPU-Zeit meines java.exe-Prozesses auf ca. 50% und blieb dort für 1 bis 2 Sekunden… jenachdem, wie komplex der Aufbau des Objekts ist.

Nun, gestern hatte ich ein Aha-Erlebnis: Auf meinem Arbeitsrechner wird mir der Inhalt der der Objekte so dargestellt, wie es die toString()-Methode liefert. Das fehlte mir auf meinem Privatrechner. Mal eben fix eingestellt und alles war schön. Wirklich alles? Nein! Plötzlich war das Debugging ebenso langsam wie auf meinem Arbeitsrechner.

So, nun habe ich diese Option bei mir auf Arbeit wieder abgeschaltet… und, siehe da, Debugging macht wieder Spaß!

Im nachhinein ist es ja auch klar: So ein Aufruf von toString() für jedes Objekt ist natürlich sehr zeitaufwendig. Jetzt muss ich mich eben wieder an das normale Aussehen meiner Variablen beim Debuggen gewöhnen.

Ach ja, für alle, die wissen wollen, wo man diese verheerende Option einstellen kann, habe ich zwei Screenshots angehängt:

Diese Option liefert ein per toString() ein aussagekräftigeres aber sehr zeitintensives Ergebnis.

Diese Option ist der Default und schnell

Und last, but not least: Alex, alles gute zu Deinem Geburtstag! Soll all das in Erfüllung gehen, was Du Dir selber wünscht.