Seite 1 von 1

Bei Darstellung von viel Text in TextEdit geht CPU-Last hoch

Verfasst: 5. Februar 2007 10:27
von M@g!ndo$ch
Hi,

Meine Anwendung besteht aus folgenden "Komponenten".
- MainWindow
- "Arbeiter"-Thread
- Window(Ergebnisfenster) zur Darstellung von Ergebnissen in nem TextEdit

und mein Problem ist folgendes:

Über das MainWindows wird der "Arbeiter"-Thread angeworfen. Dieser schreibt während er "arbeitet" Ergebnisse (html-Strings) in eine StringList. Diese übermittelt er dann am Ende mittels Signal an den Results-Slot des Ergebnisfensters. In diesem Slot geh ich die StringListe durch, und füge
nacheinander die Strings(Ergebnisse) via insertHtml() dem TextEdit hinzu und rufe dann Ergebnisfenster->show() auf. Das funktioniert bei wenigen Ergebnissen auch wunderbar. Jetzt kanns aber durchaus passieren, dass ich ne' große Anzahl von Ergebnissen darstellen muss (z.B. >800). Sobald nun das Ergebnisfenster dargestellt wird, geht die CPU-Last auf über 50% und die Gui reagiert dadurch nur noch sehr langsam.

Kann sich das jemand von euch erklären?

Verfasst: 5. Februar 2007 14:46
von macman
Das Thema hatten wir schon mal hier, eine Lösung war aber nicht dabei IIRC. Je mehr da drin steht, desto mehr muss eben geparst werden. 800 Einträge sollten eigentlich noch kein Problem darstellen, aber ich weiß ja auch nicht wie lang die Einträge sind und ob es sich überhaupt um korrektes HTML handelt :-)

Verfasst: 5. Februar 2007 15:28
von M@g!ndo$ch
Aha, soso....Thx.

/noobmode on
Was genau heisst denn bitte IIRC ???
/noobmode off

Müsste eigentlich schon korrektes html sein. Lässt sich das Problem umgehen wenn ich kein html benutze?

Verfasst: 5. Februar 2007 15:55
von macman
M@g!ndo$ch hat geschrieben:Was genau heisst denn bitte IIRC ???
If I Remember Correctly, Hier mehr davon.
M@g!ndo$ch hat geschrieben:Lässt sich das Problem umgehen wenn ich kein html benutze?
Keine Ahnung, probier es aus.

Verfasst: 5. Februar 2007 21:15
von franzf
M@g!ndo$ch hat geschrieben:/noobmode on
Was genau heisst denn bitte IIRC ???
/noobmode off
(Ich hab grad keinen Bock in anderen Threads zu schnüffeln, ob du Linux verwendest, aber)
Für Linux installier dir wtf. Nettes Consolen-Tool, da kannste von vielen Abkürzen schnell den sinn nachschlagen, z.B.:

Code: Alles auswählen

$ wtf iirc
IIRC: if I recall correctly
$ wtf wtf
WTF: {what,when,where,who,why} the fuck
$ wtf imho
IMHO: in my humble opinion
Grüße
Franz

Verfasst: 5. Februar 2007 22:05
von M@g!ndo$ch
@franzf: Thx für den Tip ;-) Wäre bestimmt nützlich, muss mich allerding als Windowsnutzer outen ;-)

Zu dem Problem hab ich mal folgendes getestet:

Hab ne' Schleife mit 2000 Durchläufen nen' TestString ins TextEdit schreiben lassen. Einmal mit insertHtml() und einmal mit insertPlainText().

Code: Alles auswählen

char* testString = "<b>Dies ist ein TestString !!!!</b>........<br>\n";
for(int i=0;i<=2000;i++)
{		
	resultTextEdit->insertHtml(testString);
}
Und siehe da! Es liegt wohl am Html!!! Bei insertPlainText() funktioniert alles wunderbar....

Gruß M@g!ndo$ch