Einzelnen Beitrag anzeigen

Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#14

Re: Funktionsaufruf: Dauert immer länger. Warum?

  Alt 12. Apr 2009, 06:53
Ich habe die Version von Christian einfach mal probeweise mit der Mengenabfrage probiert.
Und das Ergebnis ist, 145 ms zu 45ms mit der Mengenabfrage! So sieht der momentan schnellste Code aus:
Delphi-Quellcode:
function ClearStr4(const Str: string): String;
const
ValidChars = ['a'..'z','A'..'Z','ä','ö','ü','Ä','Ö','Ü','ß',' '];
var
  i,x,count: Integer;
  begin
  if Str = 'then Exit;
  result:= '';
  count:= 1;
  SetLength(Result, Length(Str));
  for i:= 1 to Length(Str) do
      begin
      if str[i] in ValidChars then //Hier fragen wir die Menge ab.
         begin
         Result[Count]:= Str[i];
         Inc(Count);
         end;
      end;
  SetLength(result, Count-1);
  end;
Tabelle schlägt Menge ist hiermit wiederlegt. Mit FastMM4 und FastMove.pas gibt es nochmals einen Geschwindigkeitsschub.
Im Anhang die einzelnen Exen und den Source incl. der Exen beigefügt.
[Edit: Move.pas heißt FastMove.pas und //Break... aus Source entfernt]
Angehängte Dateien
Dateityp: rar clearstring_110.rar (160,3 KB, 1x aufgerufen)
Dateityp: exe clearstringmitfastmm_472.exe (63,0 KB, 0x aufgerufen)
Dateityp: exe clearstringohnefastmm_208.exe (43,5 KB, 0x aufgerufen)
  Mit Zitat antworten Zitat