Einzelnen Beitrag anzeigen

Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#3

Re: warum ist das Programm so langsam?

  Alt 19. Jan 2007, 14:43
Zitat von Luckie:
Eine fällt mir hier auf:
setlength(myarray,i+1); Ändert man die Größe eines dynamischen Arrays, wird für die neue Größe (Alt + Anzahl neue Elemente) neuer Speicherreserviert. dann wird der Inhalt des alten Arrays dorthin kopiert. Das ist erstmal zeitraubend und zum zweiten ein Speichrfresser, da der alte Speicher nicht wieder freigegeben wird. Damit defragemntiert auch der Speicher sehr stark.

Schätz am Anfang, wie groß das Array ungefähr sein muss und wenn es nicht mehr raicht, vergrößerst du es gleich um 30% dr ursprünglichen größe, so dass du es nicht in jedem Schleifendurchgang vergrößern musst.

Es können noch weitere Bremsen im Code, sein, aber die sind mir so auf die Schnelle nicht aufgefallen.
Danke für den Tipp, aber diese Zeit messe ich ja garnicht mit.
Ich messe nur die Zeit des Sortierens.
habe auch nochmal Editiert oben.

Es muss innerhalb dieser zwei Proceduren sein.
  Mit Zitat antworten Zitat