Thema: Delphi Out of Memory

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Out of Memory

  Alt 2. Aug 2007, 15:11
da helfen keine Defrag-Programme. Da hilft die Verwendung eines anderen Speichermanager oder besser, die Verwendung eines algorythmus der das beachtet.
Zum Beispiel anstelle tausend mal an einen String etwas anzuhängen kann man vorher die benötigte Länge berechnen, 1 mal die Länge des Strings setzen und dann in diesen String (also in den Speicherbereich des Strings) die Daten rein kopieren.
negativ Beispiel:
Delphi-Quellcode:
var
  lCount : Integer;
  lquelle,
  lzeile : String;
begin
  lQuelle := 'abc';
  lZiel := '';
  for lCount := 0 to 999 do
  begin
    lZiel := lZiel + lQuelle;
  end;
besser:
Delphi-Quellcode:
var
  lCount,
  lLenQuelle : Integer;
  lquelle,
  lzeile : String;
begin
  lQuelle := 'abc';
  lLenQuelle := Length(lQuelle);
  SetLength(lZiel, 1000 * lLenQuelle);
  for lCount := 0 to 999 do
  begin
    move(lQuelle[1], lZiel[1 + lCount * lLenQuelle], lLenQuelle);
  end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat