„hsperfdata_*“ so heißen bei mir einige Ordner, und was so böse aussieht muss natürlich erstmal analysiert werden. Der Verdacht, dass es sich um Objekte handelt, die durch Java angelegt wurden, liegt nahe. Doch was hat es mit dem hsperfdata auf sich? Und wie kann man die hsperfdata Ordner löschen?Erstmal zum Namne: hsperfdata steht für „HotSpot Performance Data“ und ist unter Linux/Solaris ein prefix, dahinter kommt der Username des Java Prozesses oder der Java Prozesse, die von dem User gestartet wurden.

Beispielsweise: hsperfdata_johndoe, wenn der Benuter „johndoe“ die zugehören Java Prozesse gestartet hat. In dem Ordner befinden sich dann Dateien mit 16kb oder 32kb Größe, der Dateiname besteht aus einer Nummer. Die Nummer ist die Prozess-ID (PID) des zugehörigen Java Prozesses. Die Datei selber besteht scheinbar nur aus unlesbaren binärdaten gemischt mit ein paar Strings.

netbeans-visualgcDiese hsperfdata Dateien sind in Wahrheit Auszüge aus der JVM die z.B. für Laufzeitanalyse und Prozessmanagement genutzt werden. (s. auch das zugehöre FAQ von Sun.) Lädt man sich das separate jvmstat Paket herunter, so bekommt nan auch den visualgc, ein experimentelles Tool zur visuellen Analyse des Garbage Collectors. VisualGC ist auch als Netbeans Modul verfügbar, s. Screenshot.

Eigentlich sollten die hsperf Ordner automatisch gelöscht werden, wenn der zugehörige JVM Prozess beendet wird, jedoch kann dies bei einem System-Crash schonmal ausbleiben. In diesem Fall kann man bei Bedarf den Ordner von hand löschen – da die Dateien jedoch sehr klein sind und zudem in einem temporären Verzeichnis angelegt werden, kann man diese getrost rumliegen lassen.

Möchte man das Feature komplett deaktivieren, so kann man bei den Java Optionen auf der Kommandozeile zusätzlich angeben:

-XX:-UsePerfData

Dann werden die Ordner nicht angelegt, jedoch stehen die Analysefunktionen auch nicht zur Verfügung. Auf der anderen Seite ist die VisualVM als neueres Tool ebenfalls verfügbar und ermöglicht fast die gleichen Einblicke in die Java Virtual Machine. (Etwas geringere Detaillierung der einzelnen Spaces, jedoch meist reicht ein Blick auf den Classloader und PermGen um Memory Leaks zu finden.)