JTextArea

Status
Nicht offen für weitere Antworten.
C

Conker

Gast
Hallo Leute,

ich habe ein großes Problem. In meinen Programm ist eine JTextArea die in die in einem bestimmten Zyklus Text eingefügt wird. Dafür wird natürlich auch Platz auf dem Arbeitsspeicher benütigt. Wenn ich sie aber lösche, müsste doch eigentlich der vorher benütigte Arbeitsspeicher wieder freigegeben werden. Wird er aber nicht und der Speicherplatzbedarf meines Programms wächst und wächst. Was kann ich dagegen tun?

HILFE!!! BITTE!!!
 
C

Conker

Gast
Hat leider nicht funktioniert. Hast du vieleicht noch eine Idee?
 

gustav

Aktives Mitglied
Eigentlich brauchst Du Dir darum nicht soviel Sorgen zu machen. Selbst wenn der GC nicht anspringt sollte Dein Speicher noch ausreichen. Aber vielleicht hast Du ja noch irgendwo eine Referenz auf das Objekt, versuch mal ein explizietes zuweisen von Object = null.

Das Verhalten vom GC kannst Du ein wenig mit der Kommandozeilenoption java -verbose:gc class
untersuchen.
Ansonsten habe ich die Erfahrung gemacht, das man den Werten von Runtime.freeMemory/totalMemory() nur bedingt Glauben schenken darf, da dieser Wert dynamisch ist. D.h. die JVM holt sich erst bei Bedarf zusätzlichen Speicher. Allerdings ist die Grenze nach oben nicht offen.
Falls Du aber mit einem BetriebssystemTools deinen Speicher beobachtest dann sind diese Werte gleich gar nicht aussagekräftig. Denn ein einmal von der JVM belegter Speicher wird nicht so schnell wieder frei gegeben - auch wenn genügend Mem in der JVM vorhanden ist.....
 
C

Conker

Gast
Das würde also bedeuten, dass mein Programm den Speicherplatz freigegeben hat, wenn ich den Text in meiner JTextPane gelöscht habe. Auch wenn der Task Manager von Windows 2000 Professional meint, dass es ihn noch nutzt. Aber warum nutzt mein Programm nicht gleich den Speicherplatz den es freigibt anstatt sich immer wieder neuen zu holen?

????
 

gustav

Aktives Mitglied
Das ist eine komplizierte Sache. Am besten ist es, Du baust Dir eine Art TestBench und stresst Deinen Code ein wenig, dann kannst Du sichergehen, das alles o.k. ist.

Java hat eine automatische Speicherverwaltung auf die man sehr wenig Einfluss hat. Die Entscheidungen die hinter der Allokierung von Speicher stehen - obwohl noch interner frei ist läßt sich manchmal recht schwer einsehen. Die momentane Speicherverwaltung basiert auf einen Generationsmodell, d.h. Objekte die länger leben werden vom GC nicht so oft nach freien Stellen durchsucht. Anders ausgesprochen, nach einem Lauf des GC kannst Du nicht sicher sein, das auch wirklich alle nicht mehr referenzierten Objekte frei gegeben wurden.
 
C

Conker

Gast
Danke Gustav!!! Du hast mir wirklich sehr geholfen!!! Nochmal danke!!!
 
C

Conker

Gast
Auch dir ein großes Danke Stefan1200!!!!!!!!!!
P.S. Die sache mit dem Garbage Collector klappt doch. Ich lasse ihn einfach in einem Thread immer wieder neu starten.
 

Ebenius

Top Contributor
Das mit dem Garbage-Collection in einem Thread immer wieder aufzurufen hallte ich für etwas übertrieben. Wenn Du nicht so viel Speicher zur Verfügung hast, sollte deine VM auch nicht so viel alloziieren. Geht die VM an Speichergrenzen, bekommt sie das mit und führt das Garbage collection von selbst mit höherer Priorität aus. Im Normalfall ist der manuelle Aufruf von System.gc() selten sinnvoll. Und wenn der manuelle Aufruf doch gute Gründe hat, was selten ist, dann aber möglichst nicht zyklisch, sondern nach abgeschlossenen Abarbeitungs-Einheiten (wie zum Beispiel: Umständliche Berechnung abgeschlossen -> viele temporäre Instanzen sollen aufgeräumt werden...).

Hier noch ein Auszug aus der API - Beschreibung von Runtime.gc()/System.gc(). Diese Methoden rufen nämlich keines Wegs den Garbage Collector auf oder stoßen ihn direkt zum Arbeiten an.

Calling this method suggests that the Java virtual machine expend effort toward recycling unused objects in order to make the memory they currently occupy available for quick reuse.

Das ist sozusagen die dritte Ableitung des Befehls nach "Vielleicht".

Grüße, Ebenius
 

me.toString

Bekanntes Mitglied
wenn das alles nix hilft, dann probier mal 'nen Profiler aus. Der zeigt dir an, wieviele Objekte von welchem Typ benutzt werden ... da findet man schnell raus, wer der Speicherfresser ist.
Ich hab gute Erfahrungen mit JProbe gemacht ( wir ham's hier in der Firma ... weiss nicht was das Ding kostet ... auf jeden fall soll's 'ne Trial-Version geben ).

Michael
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
RedEagle Swing JTextArea ist leer AWT, Swing, JavaFX & SWT 13
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
K Swing 2 JTextArea parrallel scrollable AWT, Swing, JavaFX & SWT 16
Hatsi09 JTextArea Inhalt verlinken AWT, Swing, JavaFX & SWT 4
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
S Ausgabe in JTextArea AWT, Swing, JavaFX & SWT 13
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
F 2D-Grafik JTextArea drucken bringt mieses Ergebnis AWT, Swing, JavaFX & SWT 2
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
Bluedaishi JtextArea AWT, Swing, JavaFX & SWT 6
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
F JTextarea Steuern ~ consolenanbindung AWT, Swing, JavaFX & SWT 5
F Event Handling JTextArea auf bestimmte Eingabe reagieren (Return-Taste) AWT, Swing, JavaFX & SWT 2
F JTextArea hat keinen Rahmen AWT, Swing, JavaFX & SWT 10
N JTextArea Events weiterleiten AWT, Swing, JavaFX & SWT 3
R JTextArea mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 6
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
HoloYoitsu jTextArea.setCaretPosition(); What am I doing wrong? AWT, Swing, JavaFX & SWT 0
S Zeilenumbruch jTextArea mit toString AWT, Swing, JavaFX & SWT 2
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
M JTextArea - Leertaste "sperren" AWT, Swing, JavaFX & SWT 1
S Inhalt der Java-Konsole in die JTextArea AWT, Swing, JavaFX & SWT 3
M Swing JTextArea mit ScrollBar AWT, Swing, JavaFX & SWT 9
S Swing Zahl der Zeilenumbrüche in einer JTextArea bestimmen AWT, Swing, JavaFX & SWT 1
F Swing Caret in JTextArea vergrößern AWT, Swing, JavaFX & SWT 2
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
N JFrame änliches wie JTextArea? AWT, Swing, JavaFX & SWT 2
A Swing JTextArea - Multi-Line-Editing AWT, Swing, JavaFX & SWT 2
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
O JTextArea befüllen AWT, Swing, JavaFX & SWT 2
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
T Swing Ausgabe aus ArrayList in Klasse1 in jTextArea in Klasse2 AWT, Swing, JavaFX & SWT 2
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
B Drucken der JTextArea AWT, Swing, JavaFX & SWT 4
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
Hoppelmann Swing Tasten in JTextArea blockieren AWT, Swing, JavaFX & SWT 2
S JTextArea Tastaturanschläge AWT, Swing, JavaFX & SWT 2
E Swing JTextArea in JFrame, wie nun WindowFocusListener implementieren? AWT, Swing, JavaFX & SWT 2
S Problem mit JButton und JTextArea AWT, Swing, JavaFX & SWT 2
J Swing Mitwachsende JTextArea+ JPanel AWT, Swing, JavaFX & SWT 4
P Swing JtextArea füllen mit setText AWT, Swing, JavaFX & SWT 7
M Probleme mit der Selektion einer JTextArea AWT, Swing, JavaFX & SWT 3
T Die Größe einer JTextArea an Ihren Parent JPanel anpassen. AWT, Swing, JavaFX & SWT 5
hdi Swing ListCellRenderer + JTextArea + LineWrap AWT, Swing, JavaFX & SWT 6
T ComponentOrientation in JTextArea AWT, Swing, JavaFX & SWT 3
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
G Swing JTextArea mit fester Anzahl Spalten! AWT, Swing, JavaFX & SWT 10
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
L JTextArea mit JScrollPane AWT, Swing, JavaFX & SWT 7
padde479 Swing replace JTextArea funktioniert nicht AWT, Swing, JavaFX & SWT 2
L Zeilenumbrüche aus JTextArea MIT in Textdatei schreiben AWT, Swing, JavaFX & SWT 4
_dp jTextArea/jTextPanel Auto Höhe AWT, Swing, JavaFX & SWT 5
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
Ollek Text in JTextField und JTextArea zur Laufzeit ändern AWT, Swing, JavaFX & SWT 6
P Datenelement anderer Klasse in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
P Scrollbar JTextArea AWT, Swing, JavaFX & SWT 23
M Swing Ausgabe in JTextArea verzögern AWT, Swing, JavaFX & SWT 7
T Swing jTextArea soll sich der Fenstergröße anpassen beim ziehen?? AWT, Swing, JavaFX & SWT 2
S System.out in JTextArea AWT, Swing, JavaFX & SWT 4
S Swing JTextArea - Bild auf/ab Tasten implementieren AWT, Swing, JavaFX & SWT 4
J JTextArea verschwindet bei resize vom JFrame AWT, Swing, JavaFX & SWT 2
VfL_Freak "setAccelerator/KeyStroke" bei JTextArea ? AWT, Swing, JavaFX & SWT 6
P Swing JTextArea - beim neuzeichnen bleibt manchmal weißer Kasten AWT, Swing, JavaFX & SWT 10
Dit_ JTextArea zu Zeile X scrollen AWT, Swing, JavaFX & SWT 4
H variable Höhe einer JTextArea (als Renderer/Editor) als Zelle einer JTable AWT, Swing, JavaFX & SWT 9
B Wechsel JTextArea und JComponent AWT, Swing, JavaFX & SWT 9
M [erledigt] Bestimmte Zeile aus JTextArea löschen AWT, Swing, JavaFX & SWT 3
G Swing JTable und JTextArea synchronisieren AWT, Swing, JavaFX & SWT 2
C JLabel, JTextArea, JScrollPane. repaint(); ? AWT, Swing, JavaFX & SWT 6
M JTextArea AWT, Swing, JavaFX & SWT 2
E Swing JTextArea Alternative? AWT, Swing, JavaFX & SWT 5
A Swing JTextArea über Frame hinaus anzeigen? AWT, Swing, JavaFX & SWT 2
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
N JTextArea.setLineWrap Bug? AWT, Swing, JavaFX & SWT 3
N Swing JTextArea/JScrollpane: JScrollbar position AWT, Swing, JavaFX & SWT 8
I JTextArea mit Copy Paste Funktion AWT, Swing, JavaFX & SWT 7
M Swing JTextArea größe anpassen & setBackground liefer Nullpointer AWT, Swing, JavaFX & SWT 4
Plastagen JTextArea CaretPosition Aktualisierung AWT, Swing, JavaFX & SWT 10
C JTextField und JTextArea - Verständnisproblem AWT, Swing, JavaFX & SWT 14
B Exceptions werfen und in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
F new Line in JTextarea AWT, Swing, JavaFX & SWT 15
X Problem bei JTextArea und Thread.sleep() AWT, Swing, JavaFX & SWT 8
J Beliebtes Problem: Scrollbar in JTextArea AWT, Swing, JavaFX & SWT 4
w0ddes Swing JTextArea auf JScrollPane - Autoscroll?! AWT, Swing, JavaFX & SWT 2
Developer_X Swing Java JTextArea auto scroll down AWT, Swing, JavaFX & SWT 6
T Swing JTextArea, JTextPane, JEditorPane...Unterschied?! AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben