Hi,
ich hab ein Problem, ich hab ein Programm, welches ich mit ca. 30 Threads laufen lasse (4 Kerne).
Diese Threads erstellen eine Klasse, welche sämtliche Aufgaben ab arbeitet,
z.B.
- Source holen per
Indy.Get
- Source bearbeiten
- Source in Document übergeben
mit dieser Funktion:
Delphi-Quellcode:
function THtmlSearch.GetDocument(const markup: WideString): IDispatch;
var
doc: OleVariant;
begin
CoInitialize(nil);
Result := CoHtmlDocument.Create;
doc := Result;
doc.Open;
doc.Write(markup);
doc.Close;
CoUnInitialize;
end;
später wird im finally Block, die Klasse wieder frei gegeben.
Jedoch wird jedesmal der Arbeitsspeicher beim erstellen der Klasse belastet, aber beim Frei geben per FreeAndNil() nicht wieder entlastet.
So dass ich irgendwann an die 1 GB und manchmal wesentlich mehr in anspruch nehme und es bei der 2GB Grenze natürlich kracht.
Gibt es da eine Lösung?