Entwickler-Ecke

Programmierwerkzeuge - Auslagerungsdatei wächst tierisch


DJ Strobe - Do 07.07.05 01:58
Titel: Auslagerungsdatei wächst tierisch
Hallo. Wollte mal fragen, ob dieses Phänomen auch schon bei anderen vorgekommen ist, und ob man was dagegen machen kann.

Bei längerer Arbeit mit Delphi wächst die Swapdatei bis ins Bodenlose (WebTemp meldete schon 1GB, kompletter Arbeitsspeicher), die Festplatte hat pausenlos Zugriffe.

Kann ich da irgendwas gegen tun? Sonst werde ich ja nie fertig.


Moderiert von user profile iconraziel: Topic aus Sonstiges verschoben am Do 07.07.2005 um 13:19


Dargor - Do 07.07.05 07:29

Am besten ist es, die Auslagerungsdatei auf eine feste Größe einzustellen, d.h. Min und Max auf den gleichen Wert stellen. Entweder du nimmst die Größe, die dir Windows empfiehlt oder die gleiche Größe, wie dein Arbeitsspeicher.


maxk - Do 07.07.05 10:25

Das habe ich auch manchmal - aber selten. Das einfachste ist es Delphi zu schließen und wieder zu öffnen. Dann kann man normalerweise ganz gut weiterarbeiten. Ansonsten ist es wie Dargor bereits gesagt hat, empfehlenswert eine feste Größe für die Auslagerungsdatei einzustellen und darauf zu achten, dass die Datei nicht fragmentiert ist. Empfehlung: Mach eine Partition die so groß ist, wie dein Arbeitsspeicher (+ 5 MB) und lege ausschließlich die Swapdatei auf diese Partition. Formatieren solltest du sie mit FAT32, da Windows dann keine MFT-Tabellen anlegen muss. Das Ergebnis ist eine unfragmentierte Auslagerungsdatei auf einer seperaten Partition - unbedingt empfehlenswert :D

Gruß,
maxk


jaenicke - Do 07.07.05 10:32

Das Problem bei Delphi 2005 ist bekannt, das wird durch die neuesten Updates behoben, aber leider gibts kein Update für die Personal...


Amiga-Fan - Do 07.07.05 10:57

Zitat:
die Auslagerungsdatei auf eine feste Größe einzustellen, d.h. Min und Max auf den gleichen Wert stellen.


ich glaube bei Spielen ist das weniger zu empfehlen. Ich hatte das damals so gemacht, die swap-datei war auch ziemlich groß, trotzdem bekam ich Probleme beim Spielen mit No one lives Forever 2. Das Spiel wurde ziemlich langsam und zwischendurch war ich einfach so wieder auf dem Desktop...


jaenicke - Do 07.07.05 11:57

Hmm, ob Delphi dann überhaupt noch läuft??? Also ich probiers erst gar nicht aus...


chrissivo - Do 07.07.05 12:06

Imho empfiehlt es sich den virtuelle Arbeitspeicher 3x so groß wie den physische Arbeitsspeicher zu machen. Außerdem sollte die Auslagerungsdatei nach Möglichkeit auf einer anderen als der Systemfestplatte liegen. Sofern nur eine Festplatte eingebaut ist, sollte die Auslagerungsdatei wenigstens auf eine andere Partition gelegt werden.

Viele Grüße

Chrissi


BenBE - Do 07.07.05 13:15

Auch in älteren Versionen habe ich das Problem beobachtet, namentlich D5 Ent und D7 Ent. Verursacht wird es in diesem Fall durch die Code-Vervollständigung wenn der Quelltext im Augenblick des Aufrufs syntaktische Fehler aufweist (soweit meine Nachforschungen ergeben haben).


DJ Strobe - Do 07.07.05 15:56

Dann probier ich die Einstellmethode für die Swapdatei mal aus. Hoffentlich läufts dann was schneller. Gestern is mir die Kiste fast abgestürzt. Arbeitsspeicher 100% voll :shock: ! Das bei 1GB Ram.


DJ Strobe - Do 07.07.05 16:48

Mein Computer ist vielleicht ein Ars...Lo..Penner :!: :autsch: Ich stell die Swapdatei auf max. 500MB ein und der Blödmann macht eine mit 998MB! Ich könnte :puke: :!:


maxk - Do 07.07.05 16:52

Ich kenn das! Ich hatte vergessen auf "Festlegen" zu klicken ;)


DJ Strobe - Do 07.07.05 16:58

Nö, hab festgelegt, steht auch so in dem Fenster drin :? . Isch jeh noch kapot :) .


Tilo - Fr 08.07.05 00:36

Was bitte bringt es eine zweite Partition auf der Platte anzulegen? Die Physische Platte muss doch trotzdem genauso schuften, das ist Schwachsinn.
Das mit mehreren Partitionen auf einer Platte ist nur sinnvoll, wenn das BS pro Partition eine max. Größe vorgibt. z.b win95 8GB.
Hatte auch erst 3 Partitioen auf einer 55GiBytePLatte. fahre jetzt nur mit einer Partition und der Rechner ist genauso schnell wie vorher.


maxk - Fr 08.07.05 08:41

Eine Extrapartition ist kein Schwachsinn! Den Grund dafür habe ich glaube ich schon genannt: wenn du eine große Datei hast, so wird diese (vor allem bei der Standardinstallation von Windows) schnell fragmentiert sein, was dazu führt, dass die Köpfe auf der Platte hin- und herspringen ohne wirklich etwas zu lesen. Da eine Swapdatei wahrscheinlich sowieso nicht so sauber aufgebaut ist, wird er das wahrscheinlich sowieso müssen, hat dafür aber immer die Datei in Reichweite ;) Es hat durchaus seinen Grund, warum Linux standardmäßig mit Swappartitionen arbeitet und erst gar keine Dateien benutzt (auch wenn man es dazu zwingen kann).

Zum Thema Partitionierung von Datenplatten: Seit Dateisystemen wie reiserfs,ext3 oder NTFS ist eine Partitionierung kaum noch nötig. Was ich häufig sehe ist, dass (ich sag's mal vorsichtig) Mausschubser immer der Meinung sind es würde etwas bringen Spiele und Programme auf eine Extrapartition zu packen um die Systemp. sauber zu halten. Das ist aber sowieso Dank Registry & Co. nicht möglich und verhindert nur, dass der Speicher effektiv genutzt wird. Was bringen mir 4 P. mit jeweils 1 GB freiem Speicher, wenn ich eine 2 GB große Datei speichern will ;)
Sinn macht es nur dann, wenn man z.B. mit Images arbeitet. Ich habe mir von meiner Systemp. ein Image gezogen und Windows beigebracht Ordner wie den Desktop, Favoriten, Eigene *, etc. auf der zweiten P. zu suchen. Ich kann ich einfach mal Image rüberbügeln ohne meine Daten sichern zu müssen bzw. innerhalb einer halben Stunde auf Linux umsteigen und wieder zurück *freu*.

Gruß,
maxk


Tilo - Fr 08.07.05 10:45

user profile iconmaxk hat folgendes geschrieben:
Eine Extrapartition ist kein Schwachsinn! Den Grund dafür habe ich glaube ich schon genannt: wenn du eine große Datei hast, so wird diese (vor allem bei der Standardinstallation von Windows) schnell fragmentiert sein, was dazu führt, dass die Köpfe auf der Platte hin- und herspringen ohne wirklich etwas zu lesen.


Bei Zwei Partitionen auf einer Physischen Platte muss der Lesekopf auch hin und her wandern, was wieder auf die Kapazität geht. Kopier mal was von Partion A auf Partition B. Das geht sehr langsam, vorallem wenn man keine Hochleistungsplatte hat. Da geht das Kopieren innerhalb einer Partition wesentlich schneller.
Gegen fragmentierte Dateien hilf es einfach ab und an zu defragmentieren. Gegen eine fragmentierte Auslagerungsdatei hilf folgendes:
- Auslagerungsdatei auf Null setzen
- Windows neustarten
- defragmentieren
- Auslagerungadatei auf eine Feste Größe setzen.
- Neustart
- Fertig.

Auslagerungsdatei an einem Stück.
Geht aber nur, wenn es mindesten ein Datenfleck auf der Platte gibt, der die Auslagerungsdatei komplett aufnehmen kann. Also die Auslagerungsdatei am Besten nach der Installation von WIndows festlegen, bevor andere Programme und dateien überspielt werden.


maxk - Fr 08.07.05 19:34

user profile iconTilo hat folgendes geschrieben:
Kopier mal was von Partion A auf Partition B. Das geht sehr langsam, vorallem wenn man keine Hochleistungsplatte hat. Da geht das Kopieren innerhalb einer Partition wesentlich schneller.
Kann ich überhaupt nicht bestätigen. Natürlich kann man mit ein wenig Aufwand auch die Auslagerungsdatei deframentieren. Die Partitionen sind auch nicht für das Springen der Köpfe zuständig, da eine Auslagerungsdatei ebenso am Ende/Anfang der Platte liegen kann, wie auch eine Partition. Mein Vater sagt übrigens gerade, dass er darauf schwört seine Auslagerungspartition in der Mitte der Platte zu plazieren, da somit der Kopf von überall den kürzesten Weg hat. Am Anfang hat er sein System (mit Image), am Ende seine Daten und dazwischen seine Swappartition.

Gruß,
maxk


// Edit: Stimmt da ist ein Denkfehler (siehes nächstes Post)


Tilo - Fr 08.07.05 23:18

user profile iconmaxk hat folgendes geschrieben:
Mein Vater sagt übrigens gerade, dass er darauf schwört seine Auslagerungspartition in der Mitte der Platte zu plazieren, da somit der Kopf von überall den kürzesten Weg hat.


Wie kontrolliert das dein Vater? HEutige Platten haben mehrere Scheiben. Verteilt dein Vater die Auslagerungsdatei auch zu gleichen Teilen auf den einzelen Scheiben? Die Ansicht im Deframfenster gibt die Organisation der Speichereinheiten an(1., 2.,..,n.Speichereinheit), aber nicht wie die Speichereinheiten auf den physikalischen Platten verteilt sind.

zum eingetlichen Thema: Gründe wieso die Sawapdatei während der Nutzung von Delphi wächst:
es wahrscheinlich liegt am Programm welches gerade bearbeitet wird:
a) viele Aufrufe von Setlength(array) um es schrittweise zu erhöhen, Lösungen wurden im Forum dikutiert
b) viele Dateiaufrufe
c) massive Speicherreservierungen(z.b 50 Mio Integer Zahlen)