[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Qt - Memory Leak?



Hallo Erik,

On Thursday 10 July 2003 07:22, Erik Thiele wrote:

> > > Es scheint so, als ob sich QTextEdit bei Bedarf neuen Speicher zwar
> > > allokiert, ihn aber nicht wieder freigibt, wenn er nicht mehr
> > > benoetigt wird. Kann das jemand reproduzieren?
> > > Ich verwende Woody mit Qt 3.1.2.
>
> Das ist durchaus drin. Wenn es dich stört, würde ich einen eigenen
> Editor schreiben. Zum Speichern des Inhaltes kannst du zum Beispiel eine
> STL Rope verwenden.
>
> Wenn das doch zu viel Aufwand ist, so lösche das QTextEdit und erzeuge
> ein neues.
>
> QString old=mytextedit->text();
> delete mytextedit;
> mytextedit = new QTextEdit (this);
> mytextedit->setText(old);
> foolayout->insertbla(mytextedit,bla);
>
> irgendwie so.
>
> Eine ordentliche Editor Speicherverwaltung wäre zum Beispiel:
>
> Sobald der Edit Puffer überläuft, verdoppele seine größe.
>
> Sobald der Edit Puffer nur ein Viertel gefüllt ist, halbiere seine
> größe.
>
> [...]

Klar. Mein eigentliches Problem ist auch leicht anders. Ich programmiere einen 
Client fuer HTML-Webchats. Jede neue Zeile wird in einem QTextBrowser 
(subclass von QTextEdit) angehaengt. Wenn man mal ein paar Stunden chattet 
ist der Speicherverbrauch dann doch recht hoch. Und wenn man den Stream dann 
"loescht", bleibt die Speichernutzung konstant so hoch. In dem Fall waere es 
wohl wirklich am einfachsten, das Objekt zu loeschen und ein neues zu 
instantiieren, da es ja nur die Optionen "voll" und "leer" gibt.

> Übrigens das mit dem QTextEdit ist kein Memory Leak, denn der delete des
> QTextEdit gibt den Speicher frei. Aber wenn du deine Qt-Programme mal
> mit "valgrind" (debian paket) laufen lässt, so findest du echte Leaks

Muss ich mir mal angucken. Ich habe bisher immer mit memprof gearbeitet.

Besten Dank und viele Gruesse,
Patrick



Reply to: