Speicherbelegung in IntelliJ auswerten

WIng2005

Mitglied
Hi werte Germeinde,

vorab: ich habe die Suche bemüht....mit Suchbegriffen wie "Speicherbelegung" leider erfolglos.

Ich lasse mein Programm seit geraumer Zeit laufen. Es werden periodisch DB-Abfragen gebildet und Sockets zu Arduinos losgetreten. Beim Start sehe ich grob 140MB Belegung..... das ganze schiesst sich dan auf ca. 170MB ein. Mich würde interessieren, ob es in IntelliJ eine Möglichkeit gibt, mehr über den Speicherhunger einer Anwendungen zu erfahren, sprich, die einzelnen Objekte und Variablen und deren Speicher einzusehen. Ich würde das Programm gern etwas optimieren und schauen, ob ich was vergessen habe freizugeben.

Danke für eure Hilfe.

VG
Steffen
 
Ich würde das Programm gern etwas optimieren und schauen, ob ich was vergessen habe freizugeben.
Die Wiederholung ueber Speicher ist schon sehr gut.

Aber ganz wichtig: Warum willst Du irgend etwas optimieren? Ohne triftigen Grund optimiert man nichts! Wenn es ein Problem gibt, dann sollte dieses Problem analysiert und dann gezielt gelöst werden.

Das mit dem Speicher freigeben ist ansonsten so in Java Unsinn, denn man gibt keinen Speicher frei! Das macht nur der GC.
 
Ohne triftigen Grund optimiert man nichts!
Wobei ich anmerken will das "lernen" auch ein sehr guter Grund ist.

Es gibt dann aber auch Optimierungen die man natuerlich machen kann, sich aber definitiv nicht auszahlen. Also wenn du zum Beispiel 10 neue Objekte pro Sekunden erzeugst, und dann dafuer einen Objekte-Vorrat anlegst aus welchem Instanzen wiederverwendet werden. Die Standardbibliotheksklassen sind alle auch nicht Muellfrei, also kommt man ohnehin nie auf eine Null-Linie beim Speicher (von anderen Bibliotheken wie Jetty oder Spring mal ganz zu schweigen).
 
Hallo zusammen,

vielen Dank für eure Antworten. Ich habe das ganze seit gestern Abend laufen und die Speicherbelegung ist von 140MB (Start, ohne aktivem Timer) auf 220MB (mit Tmer) gestiegen. Ich habe das Gefühl, dass allein die GUI davon einiges verbraucht (Klicke ich ein wenig rum, steigt das ganze weiter). Insofern möchte ich (als blutiger Anfänger) da schon einmal nachschauen, was ggf. unnütz im Speicher liegt. Die beiden Links von Robert schaue ich mir heute Abend mal an. Vielen Dank dafür 🙂

VG
Steffen
 
Soo...ich habe das alles mal gelesen und ausprobiert, es bringt mich allerdings nur bedingt weiter (mit VisualVM konnte ich mich zwar verbinden, mir fehlt aber die Routine, um hier auch Nutzen draus zu ziehen). Die App läuft zwischenzeitlich auf ner Windows-Kiste (vorher MAC) und hat hier deutlich weniger Speicherhunger. Ich starte bei ca 45MB (MAC: 120MB!) und pendel mich bei 78MB ein (MAC bis über 200!). Was mir nur aufgefallen ist, ist, dass der belegte Speicher meist genau dann steigt, wenn ich die GUI (SWING) bediene. Interessanterweise dann, wenn ich ein simples TabbedPane (2 Tabs) bediene. Hier liegt kein eigener Code dahinter, und dennoch will er mal eben zw. 2MB und 10MB mehr, die dann auch nur langsam bis garnicht wieder sinken. Ist die SWING-Gui derart anfällig, oder bewerte ich das nur über? (Jetzt müsste das vermutlich eher in ein anderes Unterforum). Im Anhang mal ein Bild der Gui...nichts spektakuläres. Switche ich zwischen Activity-Monitor und Status-Monitor hin- und her, wird mehr Speicher belegt.

VG
Steffen
 

Anhänge

  • Gui.png
    Gui.png
    203,4 KB · Aufrufe: 1

Zurück
Oben