Programm erzeugt ständig neue Strings .

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,

ich habe einen Thread-Pool der alle 15 Minuten ein neues Runnable aufruft.
In diesen 15 Minuten wird in einer MySQL Datenbank geschaut ob es etwas zum abarbeiten gibt.

In meinem Fall gibt es noch nichts zum abarbeiten, trotzdem steigt der Speicherverbrauch des
Programms mehr oder minder stetig. Hatten usn das ganze nun im JProfiler angesehen und mussten erstaunt
feststellen das das Programm in der 15 minütigen Pause stetig Strings erstellt und somit den Speicher vollmüllt.
Wenn wir im JProfiler per Hand den Garbage Collector aufrufen werden diese Strings gelöscht - aber sofort wieder
enue erstellt.

Hat jemand schonmal ähnliches Entdeckt, wo kommen diese Strings her, wie kann man das umgehen?

Vielen lieben Dank schomal!
 
Um raus zu kriegen woher die Strings kommen musst du deine gesamten Code durchforsten. Benützt du vieleicht externe Packete, die (egal ob die Consolenausgabe aktiviert ist oder nicht) Statusmeldungen erzeugen?
Auf jeden Fall kannst du nicht von "vollmüllen" reden wenn der GC alles wieder aufräumt! Schließlich bedeutet dass, das die betreffenden Strings sind nicht mehr referenziert sind und somit auch kein Problem darstellen. Problematisch wird das ganze nur wenn zu schnell zu viele Objekte erzeugt werden, weil dann der GC zu oft an die Arbeit muss.

Grüße

PS: du musst den GC nicht per Hand starten, wenn die Speichergrenze (xmx) der VM erreicht wird, passiert das automatisch
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben