Erstmal ist es totaler "Schachsinn" überhaupt soviele Zeilen in einem Memo verarbeiten zu wollen.
Wer will sich das alles ansehn?
TStringList geht schneller, da hier jede Zeile "einzeln" ist und damit alles schnell verarbeitet wird.
(Memo.Text > StringList.Text > die StringList verarbeiten > StringList.Text > Memo.Text)
TMemo ist nunmal nicht für eine massenhafte String-Verarbeitung geeignet, denn dort befindet sich alles in einem Speicherblock, also für das Einfügen eines Zeichens am Anfang werden
alle nachfolgenden Zeichen verschoben.
und bei 1 Mio. Zeilen muß da viel verschoben werden.
Ohne BeginUpdate wird dabei auch noch
jedesmal die
GUI geupdatet, was dann nochmals massig Rechenleistung verbrät.
usw.