Einzelnen Beitrag anzeigen

NeoXan
(Gast)

n/a Beiträge
 
#1

Delphi Win32 Applikation schneller machen

  Alt 30. Jul 2006, 10:41
Hallo,

ich habe folgendes "Problem". Zu erst durchsuche ich diverse Verzeichnisse rekursiv und baue mir eine Liste aus den Dateien vom Typ TStringlist. Dann gehe ich wie folgt diese Liste durch:

Delphi-Quellcode:
while( slFiles.Count > 0 ) do
begin
{...}
end;

Hierbei möchte ich noch anmerken, dass mir aufgefallen ist, dass diese Methode merklich langsamer läuft als mit einer ForToDo Schleife. Ich "muss" aber while nehmen, da ich den durchlauf jederzeit mit Break beenden möchte bzw. sich die Anzahl der Elemente in der Liste ändert, wenn jemand eine alternative hat, nur raus damit.


Delphi-Quellcode:
cFile vom Typ String
while( slFiles.Count > 0 ) do
begin
 cFile := slFiles[0];
 slFiles.Delete(0);
 for i:=0 to slFiles.Count-1 do
  { Hier wird der Hash der Datei bei slFiles[i] berechnet }
end;
Das ganze läuft bei einigen Dateien recht gut, aber ich habe da zum Teil 32k Dateien, welche sich in der Liste befinden und das bräuchte zunächst 90 Stunden, was nicht wirklich das Problem ist (Lösung hätte ich schon); sondern vielmehr, dass die Applikation beim laufen dann >90% Auslastung hat, selbst bei niedriger Priorität.

Wie könnte ich die Auslastung der Applikation gering halten.

vielen Dank
Florian
  Mit Zitat antworten Zitat