garbage collection

Status
Nicht offen für weitere Antworten.

matthias333

Mitglied
ich arbeite mit eclipse und irgendwie wird mein gesamtes system mit der zeit irrsinnig langsam.
zuerst verdächtigte ich eclipse nur kommt mir die ganze geschichte ein wenig komisch vor.

mittlerweile glaub ich, dass es sich um speicherlecks handeln könnte die ich programmiert habe. Kann man sowas irgendwie überprüfen bzw. eliminieren?

andere frage: wenn ich mein programm beende werden dann sämtliche variablen, arrays, referenzen gelöscht die zu dem programm gehören?
irgendwo hab ich schon mal was über die garbage collection in java gelesen, jedoch mich nicht näher damit beschäftigt. nachdem die aussage des articels war, dass man sich keine sorgen um verwaiste variablen machen müsste da sich java selbst darum kümmert.

oder liegt die ganze sache vielleicht doch an eclipse?

plz help matthias.
 
B

Beni

Gast
Kommt draufan, Eclipse soll tatsächlich ein Speicherloch haben, aber das soll sich erst nach etwa 8 Stunden bemerkbar machen (ich habe das noch nie ausprobiert, oder bemerkt).

Zu dem anderen: Der Garbage Collector von Java räumt alle Objekte weg, auf die es keine Referenzen mehr gibt. Das Problem ist: es darf wirklich keine Variablen mehr geben, die zu einem Objekt zeigen. Beispiel: wenn du jedesmal wenn z.B. ein Dialog geöffnet wird, irgendeinem Button einen neuen ActionListener überreichst. Dann ist dieser Listener zwar in deinem nicht mehr direkt sichtbar, aber weil der Listener in dem Button gespeichert wird, und der Button auch bei dir bekannt ist... sammeln sich die Listener.

Also: such nach Objekten die du in irgendwelche Listen (oder Bäume oder...) reinschreibst, und die niemehr entfernt werden.
 

matthias333

Mitglied
noch eine frage:

in wie weit sagt denn die speicherauslastung im taskmanager etwas über den waren speicherverbrauch des programms aus?

die speicherauslastung meines programms beträgt 15MB - kommt mir nicht großartig viel vor, da die meisten anderen programme nicht viel mehr/weniger haben.
die von eclipse beträgt allerdings 149MB - was mir äußerst viel vor kommt.... kann das richtig sein - wenn ja kann man die reduzieren?

hat wer in diese richtung scho erfahrung?

thx scho mal matthias

ps.:
und jo i weiß ma könnt den thread auch in a anderes forum schreiben, da es ja auch irgenwie mit eclipse zu tun hat, aber eigentlich gehts ja um die garbage collection und speicherleckvermeidung. : :meld:
 

matthias333

Mitglied
@beni: jo das mit den referenze hab ich scho gewusst.
und das beispiel mit den buttons ist net mal schlecht

1.: wenn ich jetzt so nen dialog schließe (shell.close()) sind jetzt alle referenzen auf events weg?

2.: wie kann ich die referenzen darauf löschen?
Code:
String[] array = {1,2,3,4,5};
array = null;  // funkt das so?

mfg matthias
 

Bert Brenner

Bekanntes Mitglied
Den Tastmanager kannst du knicken um sowas zu messen.

Beobachte doch mal den Speicherbedarf deines Programms wenn du es minimierst. :)
 

thE_29

Top Contributor
Mein JBuilder braucht zZ 493 MB ;)

Das kommt aber daher, das der seit 8 Uhr läuft und ich so ca. 100 Projekte kompiliert habe....

Der hat auch irgendwo ein Speicherleck.. oder er gibt nie was frei...
 

mic_checker

Top Contributor
matthias333 hat gesagt.:
2.: wie kann ich die referenzen darauf löschen?
Code:
String[] array = {1,2,3,4,5};
array = null;  // funkt das so?

Das wäre eine Möglichkeit. Es gibt zwar auch Destruktoren , allerdings ist nicht sichergestellt das diese aufgerufen werden....In Java sind diese Destruktoren auch nicht von allzu großer Bedeutung, wenn ich das mal behaupten darf (vergleicht man das Ganze mit Sprachen wie C++).
 

AlArenal

Top Contributor
Auf null setzen ist aber ne echt beschränkte Möglichkeit. Wenn du mit Listenern & Co. arbeitest kommst du da ganz schnell an Grenzen. Siehe meinen Link weiter oben.
 

matthias333

Mitglied
jo das mit den destructoren hab i auch scho mitkriegt, weshalb ich sie auch gar nicht erwähnt hab.

@bert brenner:
i würd mal behaupten wenn man eine programm minimiert kommts ausn ram in den virtuellen speicher (von windows) um mehr speicher zur verfügung zu haben. sobald man es in den vordergrund holt läd sich das programm in den arbeitsspeicher.
es is ja auch so das wenn man ein programm schon länger minimiert hat und man es später wieder aufruft dauert es "ewig" (kommt auch drauf an was ma nebenbei nu macht) bis es wieder sichtbar ist.

wenn i damit total falsch liege bitte ich um berichtigung. :lol:

mfg matthias
 

mic_checker

Top Contributor
AlArenal hat gesagt.:
Auf null setzen ist aber ne echt beschränkte Möglichkeit. Wenn du mit Listenern & Co. arbeitest kommst du da ganz schnell an Grenzen. Siehe meinen Link weiter oben.

ok, da werde ich dir nicht widersprechen.

Kommt natürlich auch immer drauf an was für Programme man programmiert, unser Prof hat in dem Kapitel zu Destruktoren auch geschrieben das die Referenz auf null zu setzen wenigstens garantiert das der GC vorbeikommt....(insofern das Programm ordnungsgemäß abläuft).
 

Bert Brenner

Bekanntes Mitglied
Mein JBuilder stoppt immer irgendwo um 300MB.

@the29. check mal im bin Verzeichniss die jbuilder.config Datei, als Standard ist die maximale Heapgrösse 75% des Arbeitsspeichers. Gerade wenn man andere speicherintensive nebenher benutzen möchte kann das zu viel sein. Da kann man dann ein paar Garbage Collections mehr in kauf nehmen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Garbage Collection Frage Allgemeine Java-Themen 15
B Garbage Collection Logfile: Binary File Allgemeine Java-Themen 2
hdi Garbage Collection Allgemeine Java-Themen 12
T Objekt der Garbage Collection zugaenglich machen? Allgemeine Java-Themen 7
F Frage zu Memory Leak, Garbage Collection und Profiler-Tools Allgemeine Java-Themen 6
M Wie lange dauert ein garbage collection Allgemeine Java-Themen 7
R Garbage Collection bei gegenseitiger Objektreferenz Allgemeine Java-Themen 2
G Frage zur Garbage Collection Allgemeine Java-Themen 5
J Garbage collector Allgemeine Java-Themen 3
D Garbage Collector Allgemeine Java-Themen 3
A Garbage Collector Allgemeine Java-Themen 3
A Garbage Collector in NetBeans vs. exe Anwendung Allgemeine Java-Themen 33
L Garbage Collector lässt Programm kurz hängen Allgemeine Java-Themen 10
H2SO3- SCJP garbage collector frage Allgemeine Java-Themen 13
R Garbage Collector löscht anscheinend nichts Allgemeine Java-Themen 22
S Garbage Collector entlasten Allgemeine Java-Themen 2
JStickman Der Garbage Collector Allgemeine Java-Themen 13
P Threads ohne Referenz & der Garbage Collector Allgemeine Java-Themen 2
S garbage collector prog Allgemeine Java-Themen 4
S Threads <-> Garbage Collector Allgemeine Java-Themen 2
M Java Garbage Collector Frage (Singleton Pattern) Allgemeine Java-Themen 13
P Garbage Collector funktioniert nicht richtig? Allgemeine Java-Themen 12
M Problem mit garbage collector Allgemeine Java-Themen 19
M Garbage manuell loswerden Allgemeine Java-Themen 29
R Garbage Collector rennt die ganze Zeit Allgemeine Java-Themen 7
M Garbage Collector Allgemeine Java-Themen 5
Rakshan Generic reading of XML document from the root tag into an Collection Allgemeine Java-Themen 0
JavaJüngling beliebige Collection die Comperable Elemente enthält als Parameter Allgemeine Java-Themen 37
W Collections Suche Collection, um Strings mit Indizees versehen Allgemeine Java-Themen 47
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
Y String-Collection: längste gemeinsame Strings / Prefixe Allgemeine Java-Themen 3
S Probleme mit Collection Allgemeine Java-Themen 7
S Passende Java Collection Allgemeine Java-Themen 5
D Eigene/r Collection/Container Allgemeine Java-Themen 3
K Collections Collection<> mit List<String> abgleichen? Allgemeine Java-Themen 10
D Beste Collection für Integer Allgemeine Java-Themen 4
H JPA (EclipseLink) Neuer Eintrag in Collection speichern (unidirektional) Allgemeine Java-Themen 3
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
H Datentypen Collection für SQL-Datentypen Allgemeine Java-Themen 2
M collection persistence system Allgemeine Java-Themen 4
K associate collection with two open sessions Allgemeine Java-Themen 12
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
S Stilfrage bezüglich Beans mit Collection-Properties Allgemeine Java-Themen 2
B iText Portable Collection Acrobat X Allgemeine Java-Themen 2
S Eine Collection von Objekten mit LDAP Syntax filtern Allgemeine Java-Themen 5
Rudolf Aus Collection<Integer> eine Zahl machen Allgemeine Java-Themen 2
R Dateigestützte Collection für große Datenmengen Allgemeine Java-Themen 5
P Collection Tree Allgemeine Java-Themen 19
C Die schnellste Collection-Klasse ? Allgemeine Java-Themen 37
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
E Collection Problem Allgemeine Java-Themen 2
B Geordnete, begrenzte Collection Allgemeine Java-Themen 3
D [SOLVED] Collection wird nicht richtig per Konstruktor übernommen Allgemeine Java-Themen 8
S Wahl der Collection, unspezifizierte Elementtypen Allgemeine Java-Themen 4
D Map mit Collection Eigenschaften Allgemeine Java-Themen 9
S Innerer Type einer generischen Collection herausfinden? Allgemeine Java-Themen 13
B SBCC - Swing Better Components Collection - downloadlink ? Allgemeine Java-Themen 5
G Schnelligkeit einer Collection Allgemeine Java-Themen 12
V Collection in Collection Allgemeine Java-Themen 3
W [solved] Vector sortieren (Collection / Comparable?) Allgemeine Java-Themen 7
M Collection aufteilen Allgemeine Java-Themen 4
S Collection Type Allgemeine Java-Themen 8
S Probleme mit collection.containsAll Allgemeine Java-Themen 28
C Collection Multithreading? Allgemeine Java-Themen 33
vogella Überschreiben von equals und hashcode für Collection Allgemeine Java-Themen 7
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
M Schnellste Collection/Liste Allgemeine Java-Themen 15
M Collection mit ArrayList Allgemeine Java-Themen 17
F mittels Collection<A> an A.class kommen? Allgemeine Java-Themen 7
L Welche Collection ist die richtige ? Listen mergen Allgemeine Java-Themen 3
B Collection Allgemeine Java-Themen 2
N Collection#retainAll(Collection<?> c) Allgemeine Java-Themen 3
R Objekttyp ermitteln das aus generischer Collection kommt Allgemeine Java-Themen 3
J Von Collection zu vector Allgemeine Java-Themen 5
P Welche Collection verwenden? Allgemeine Java-Themen 4
S Sortierung einer Collection nach dem Attribut "name&quo Allgemeine Java-Themen 3
C Collection Element ersetzen Allgemeine Java-Themen 5
C public boolean containsAll(Collection c) Allgemeine Java-Themen 2
C Collection, LinkedList, Elemente Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben