Ich schreibe gerade an einem Programm für ein Unternehmen zum Verwalten von Medien in Java. Aber mittlerweile braucht das Programm bereits nach dem Start ~80 MB Arbeitsspeicher oO
Programmiere ich so schlecht, oder schlampt Java? Damit der Speicherverbrauch bei der Benutzung des Programmmes nicht ins unendliche ausläuft, rufe ich an bestimmter Stelle System.gc() auf, was allerdings nur bedingt hilfreich ist
Ich verwende übrigens Swing für die grafische Oberfläche.
Das ist nicht unbedingt ein Grund zur Besorgnis. Wenn genug Speicherplatz verfügbar ist, dann mag die JVM vorerst damit fortfahren, den Heap zu vergrössern anstatt das Ende eines Garbage Collection Zyklus abzuwarten.
Naja, wie die JVM im Einzelnen arbeitet, entzieht sich meiner Kenntnis.
Deine Zahlen sagen mir ebenfalls nicht besonders viel.
Ich würde aber sagen, dass eine Medienverwaltung von Natur aus mehr Speicher braucht
als allgemein üblich. Sicherlich hast du z.B. Collections mit grossen Bildern oder Ähnliches.
Vielleicht könntest du periodisch diese Collections “aufräumen”.
Wenn du nach “java memory leaks” (oder so ähnlich) googlest, findest du sich ein paar Tipps.
christoph du solltest auch darauf achten in wie weit du Objekte erzeugst und sie speicherst.
Lハdst du sie erst wenn sie gebraucht werden sparste Speicher
[QUOTE=EagleEye]christoph du solltest auch darauf achten in wie weit du Objekte erzeugst und sie speicherst.
Lハdst du sie erst wenn sie gebraucht werden sparste Speicher[/QUOTE]
Sorry das ich jetzt erst antworte, hab gerade bisschen viel zu tun.
Na das du Objekte die zb nur kurz gebraucht werden nicht alsObjektvariablen machst sondern als lokale oder wenn sie nicht mehr benötigt werden auf null setzt bzw. sie aus Listen löschst. So dass niemand mehr Referenzen auf sie hat.
Das alles kann man auch gut mit einem Profiler überprüfen