Profiler

Status
Nicht offen für weitere Antworten.
U

Ulf_Klaas

Gast
Hallo,

ich habe ein Problem mit meiner Server-Java-Anwendung. Die Virtual Machine allokiert immer mehr und mehr Speicher, so dass sie nach einer Woche abstürzt. In der IX gab es in der April/2004-Ausgabe einen Artikel über Profiler. Bei meiner Recherche im Internet stellte ich fest, dass folgende Profiler am weitesten verbreitet sind: JProfiler, JProbe und Optimezeit. Hat jemand Erfahrung mit den Tools und kann mir jemand die Vor- und Nachteile der Tools aufzeigen?

Danke,

Ulf
 

lhein

Top Contributor
Habe mal den JProbe benutzt. Da gibts ne 30 Tage Evaluation zum Testen.
Fand es beim ersten Nutzen relativ kompliziert bis ich es denn endlich am Laufen hatte.
Aber es ist schon recht gut. Man bekommt eine gute Übersicht, wieviele Objekte welchen Typs im Speicher liegen und man kann auch Threads analysieren. Snapshot-Funktion gibt es auch, mit der man eine bestimmte Aktion im Programm untersuchen kann (z.B. das Einlesen von Daten in Objektstrukturen) und so evtl. Fehler erkennt.

Ich kann Dir auch von meiner Erfahrung her einen Tipp geben, wo Java Speicher verbrennt. Das DocumentModel von Java hat meines Erachtens nen Fehler. Wenn man viele Daten in eine JTextArea z.B. einliest, dann verbraucht diese Unmengen an Speicher und gibt diesen nicht wieder komplett frei. In meinem Fall hat sich das mit Dateien von ca. 10 MB ergeben, die ich in ein JTextArea packen wollte. Java allociert dafür ca. 7-8 Mal soviel Speicher wie die Datei groß ist und gibt später nur noch einen Teil davon frei. Der Rest bleibt als Leiche im Speicher zurück und führt bei Anwendungen, die i.d.R. nicht beendet werden, irgendwann zum Out of Memory Error.

Dennoch, JProbe kann ich mal empfehlen. Die anderen kenne ich nicht.

Gruß

LR
 
U

Ulf_Klaas

Gast
Hallo,

danke für die schnelle Antwort.

Du hast Recht: so eine GUI auf Java-Basis kostet echt n Haufen Speicher, der vielleicht irgendwie und irgendwann vom Garbage Collector gelöscht wird. Probier aber zur Not mal System.gc. Hat mir oft Vorteile gebracht. Allerdings hat meine Server-Anwendung keine GUI.

JProbe fand ich auch sehr kompliziert. Ich musste z.B. meine Version patchen, damit sie mit Java 1.4.2 zurechtkommt. Und des, obwohl JProbe n paar tausend Euro (!!!!!!) kostet.
Ich bin mit JProfiler sehr gut zurecht gekommen. Ist am billigsten, hat die beste IDE, hat n paar nette Tools und schaut sich viel von Optimizeit ab :D .
Aber ich glaube, mein Eindruck ist zu subjektiv, weswegen ich ja diesen Post eröffnet habe.
Würde mich über andere Erfahrungen freuen.

Gruß!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben