PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : WinXP - Speicherverwaltung: wie war das noch gleich?


Gast
2011-04-05, 16:15:32
Hallo liebes Forum,

soweit ich mich erinnern kann, wird die Speicherverwaltung doch vom Betreibssystem übernommen.
Das heißt, im Falle unzureichenden physikalischen Speichers wird theoretisch bis die Platte voll ist auf die langsame HDD (oder SSD) ausgelagert und gut ist.

Das macht sich häufig in Spielen per Nachladeruckler bemerkbar.

Soweit so gut, aber warum gibt es bei Stalker: CoP + Complete Mod das bekannte Problem mit CTD aufgrund mangelnden Speichers? Mein Pagefile ist auf 4096 MB begrenzt und sollte zusammen mit den 3,X GB Ram (XP 32) eigentlich reichen.

Mich wundert das vor allem deshalb, weil auf meiner alten nichtmal min. Voraussetzungen erfüllenden Gurke (P4 2,6GHz, 768 MB Ram, XT2800) die Crysis-Demo auf max. Einstellungen "lief". Im Gegensatz dazu hängt sich besagtes Stalker+Mod trotz absolut flüssiger Darstellung so häufig weg, dass es unspielbar ist.

Ich glaube nicht an eine Lösung hier, aber mich würde einfach folgendes interessieren:

Wer hats verbockt?

Lokadamus
2011-04-05, 17:08:49
Soweit so gut, aber warum gibt es bei Stalker: CoP + Complete Mod das bekannte Problem mit CTD aufgrund mangelnden Speichers? Mein Pagefile ist auf 4096 MB begrenzt und sollte zusammen mit den 3,X GB Ram (XP 32) eigentlich reichen.

Wer hats verbockt?mmm...

Setzt das Swapfile mal auf 256MB und teste es nochmal.

Gast
2011-04-05, 17:39:20
mmm...

Setzt das Swapfile mal auf 256MB und teste es nochmal.
Ohne Erfolg zwischen 0 und 10GB getestet, die grade eben getesteten 256 MB bringen auch nichts.
Wie gesagt, es handelt sich dabei um ein bekanntes Problem und ich bin mir sicher, deutlich versiertere User als ich werden sowas schon längst getestet haben. Ich glaube auch nicht an eine Lösung, ausser darauf zu warten, dass ein besserer Patch für die Mod erscheint. (oder 64bit BS, da scheints zu klappen)

Ich finde es nur äusserst kurios, daher die Frage, wie sowas kommt.

Lokadamus
2011-04-05, 18:34:16
mmm...

Da ich Stalker nicht habe, kann ich es nicht testen.
Ich denke aber, dass Stalker COP fehlerfrei läuft.
Das würde bedeuten, dass der Mod das Spiel aus dem Tritt bringt. Eventuell werden hier zu viele Sachen/ Texturen geladen, was die Speicherverwaltung von Stalker nur kurzfristig richtig bearbeiten kann und später einige Sachen nicht freigibt, wodurch der Speicher zu eng wird. Dabei kommt das Problem, dass nur Sachen ausgelagert werden können, die nicht mehr benötigt werden. Dadurch ist die Größe des Swapfiles auch nur noch relativ interessant.

Oder du hast irgendwas im Hintergrund am Laufen, was Probleme verursacht (Virenscanner oder so).

VoooDooo
2011-04-05, 18:54:33
unter einem 32 Bit Betriebssystem kann ein Prozess max. 2 GiB Arbeitsspeicher verwenden.

san.salvador
2011-04-05, 18:55:45
Complete Mod ist dafür bekannt, dass sie viel Ram braucht. Und viel Ram heißt auch x64.

DerRob
2011-04-05, 19:06:06
Ich finde es nur äusserst kurios, daher die Frage, wie sowas kommt.
Eine Anwendung kann unter einem 32 bit Betriebssystem nicht mehr als 2 GB (bzw. mit Tricks auch bis 3,x GB) Arbeitsspeicher zugewiesen bekommen. Solange Du also nicht mehrere speicherfressende Anwendungen gleichzeitig betreibst, ist es egal, wie groß Du die Auslagerungsdatei einstellst.

Dann ist es so, daß der Arbeitsspeicher mit der Zeit fragmentiert wird (ganz ähnlich wie Dateien auf der Festplatte): es wird immer wieder neuer Speicher angefordert, um neue Texturen, Sounds und andere Daten aufzunehmen, im Gegenzug wird natürlich auch immer wieder Speicher von nicht mehr benötigten Daten freigegeben. Allerdings ist der freigegebene Speicher nicht in einem Stück vorhanden, sondern hier mal ein paar MB, dort ein paar, usw. Irgendwann tritt dann unter Umständen der Fall auf, daß zwar noch 500 MB Speicher frei sind, diese allerdings in 10x 50 MB Blöcken vorliegen, und die Anwendung aber unbedingt 100 MB am Stück benötigt -> nicht genug Speicher vorhanden.
Es gibt zwar Mechanismen, die den Speicher immer wieder mal aufräumen/defragmentieren können, die müssen aber auch von dem Programmierer integriert worden sein, und wenn das Originalspiel ohne Mods nie über 500 MB Speicherverbrauch gekommen ist, war das in der Entwicklung evtl. auch kein wichtiger Punkt.

Gast
2011-04-05, 19:59:41
mmm...

Da ich Stalker nicht habe, kann ich es nicht testen.
Ich denke aber, dass Stalker COP fehlerfrei läuft.
Das würde bedeuten, dass der Mod das Spiel aus dem Tritt bringt. Eventuell werden hier zu viele Sachen/ Texturen geladen, was die Speicherverwaltung von Stalker nur kurzfristig richtig bearbeiten kann und später einige Sachen nicht freigibt, wodurch der Speicher zu eng wird. Dabei kommt das Problem, dass nur Sachen ausgelagert werden können, die nicht mehr benötigt werden. Dadurch ist die Größe des Swapfiles auch nur noch relativ interessant.

Danke!

Klingt logisch - das mit der "Freigabe zum Auslagern" hatte ich nicht auf dem Schirm, passt aber sehr gut zum Fehlerverhalten. Virenscanner und Co. halte ich im Zusammenhang mit den vielen anderen Problemgeplagten für eher unwahrscheinlich.

Falls dem wirklich so ist, halte ich es allerdings für fraglich, in wie weit sich das Warten auf nen besseren Patch lohnt. Immerhin müssten die Modder afaik doch recht tiefe Eingriffe in der Engine vornehmen, um das Problem zu lösen. Ob die Engine den Moddern das allerdings erlaubt, steht auf nem anderen Blatt - zumal sich das auch angesichts des wohl unvermeidlichen anschließenden Bugfixings nicht wirklich trivial anhört .

Also würden einfach die Speicheranforderungen heruntergesetzt (schlechtere Texturen etc.) - genau das, was mit dem "schlechten" Patch passiert ist und in den Workarounds beschrieben wird.

Solange keine neuen Erkenntnisse auftauchen klingt es, als ob Ockhams Rasiermesser meinem Spielspass einige Schnitte zugefügt hätte... ;)

Gast
2011-04-05, 21:02:10
Ich sollte nicht auf "zitieren" drücken, eine Antwort halb verfassen, dann essen, den Haushalt erledigen und weiterschreiben - man verpasst zwischenzeitlich zuviel...
unter einem 32 Bit Betriebssystem kann ein Prozess max. 2 GiB Arbeitsspeicher verwenden.
Klingt gut, passt aber nicht zum bisher unbeschriebenen Fehlerbild. Schließlich konnte ich das Spiel starten, laden und den kompletten ersten Sektor durchspielen. Das Problem bis dahin lag nur im Neuladen. Also laden und druchgehend spielen war kein Problem, laden, nix tun, sofort wieder laden -> CTD. Ebenso der CTD beim Sektorwechsel, der Spieleneustart + Laden des Autosaves vorm CTD, et voila, neuer Sektor lief.
Da passt das:

Dann ist es so, daß der Arbeitsspeicher mit der Zeit fragmentiert wird (ganz ähnlich wie Dateien auf der Festplatte): es wird immer wieder neuer Speicher angefordert, um neue Texturen, Sounds und andere Daten aufzunehmen, im Gegenzug wird natürlich auch immer wieder Speicher von nicht mehr benötigten Daten freigegeben. Allerdings ist der freigegebene Speicher nicht in einem Stück vorhanden, sondern hier mal ein paar MB, dort ein paar, usw. Irgendwann tritt dann unter Umständen der Fall auf, daß zwar noch 500 MB Speicher frei sind, diese allerdings in 10x 50 MB Blöcken vorliegen, und die Anwendung aber unbedingt 100 MB am Stück benötigt -> nicht genug Speicher vorhanden.
Es gibt zwar Mechanismen, die den Speicher immer wieder mal aufräumen/defragmentieren können, die müssen aber auch von dem Programmierer integriert worden sein, und wenn das Originalspiel ohne Mods nie über 500 MB Speicherverbrauch gekommen ist, war das in der Entwicklung evtl. auch kein wichtiger Punkt.
... schon besser.
Allerdings gibts im 2. Sektor ständig CTD, nicht nur beim Laden, daher auch dieser Thread statt Stalker zu spielen. Wenn der Speicherbedarf im 2. Sektor also nicht deutlich ggü. des 1. gestiegen ist, scheint ein unzureichendes Speichermanagment der Engine ursächlich für die Probleme zu sein. Zumal es woanders auch einfach zum Nachladen (ob Pagefile oder Spielefile ist erstmal egal) statt zum CTD kommt.

Rajin the troll
2011-04-06, 09:10:19
Ich sollte nicht auf "zitieren" drücken, eine Antwort halb verfassen, dann essen, den Haushalt erledigen und weiterschreiben - man verpasst zwischenzeitlich zuviel...

Klingt gut, passt aber nicht zum bisher unbeschriebenen Fehlerbild. Schließlich konnte ich das Spiel starten, laden und den kompletten ersten Sektor durchspielen. Das Problem bis dahin lag nur im Neuladen. Also laden und druchgehend spielen war kein Problem, laden, nix tun, sofort wieder laden -> CTD. Ebenso der CTD beim Sektorwechsel, der Spieleneustart + Laden des Autosaves vorm CTD, et voila, neuer Sektor lief.
Da passt das:

... schon besser.
Allerdings gibts im 2. Sektor ständig CTD, nicht nur beim Laden, daher auch dieser Thread statt Stalker zu spielen. Wenn der Speicherbedarf im 2. Sektor also nicht deutlich ggü. des 1. gestiegen ist, scheint ein unzureichendes Speichermanagment der Engine ursächlich für die Probleme zu sein. Zumal es woanders auch einfach zum Nachladen (ob Pagefile oder Spielefile ist erstmal egal) statt zum CTD kommt.


Was du beschreibst passt aber wie die Faust aufs auge.

Das ist definitiv ein 32bit problem.

z.B. Spiel starten -> laden -> Speicher fast voll -> nochmal laden -> speicher läuft voll.
genauso beim sektorwechsel speicher fast voll -> sektorwechsel -> neuer sektor wird dazugeladen -> speicher läuft voll.

Solche effekte merkt man bei den meisten Spielen dann wenn man z.B. ein besseres Texturenpaket reinläd. Die speicheranforderungen explodieren dan gerne und oft stößt man dabei dann auch an die 32 bit grenzen.

Allerdings bringt der wechsel auf ein 64 bit OS leider nicht immer abhilfe, da gerade ältere spiele das LAA-Flag nicht gesetzt haben.

Gast
2011-04-06, 17:46:06
Was du beschreibst passt aber wie die Faust aufs auge.

Das ist definitiv ein 32bit problem.

z.B. Spiel starten -> laden -> Speicher fast voll -> nochmal laden -> speicher läuft voll.
genauso beim sektorwechsel speicher fast voll -> sektorwechsel -> neuer sektor wird dazugeladen -> speicher läuft voll.

Allerdings bringt der wechsel auf ein 64 bit OS leider nicht immer abhilfe, da gerade ältere spiele das LAA-Flag nicht gesetzt haben.
Natürlich ist es das (unter 64bit gehts ja), wäre aber mit besserem Speichermanagment imho kein Problem. Immerhin reicht es ja zum stabilen Spielen nach dem Laden. Warum sollten auch die Anforderungen beim erneuten Laden steigen? Das macht nur Sinn, wenn aufgrund schwächelnden Managments Dinge doppelt geladen werden, weil sie im Ram z.B. zu spät (oder nie...) mit "überschreib mich/lager mich aus" gekennzeichnet werden. Oder es zu fragmentiertem Speicher kommt wie der Rob schrieb.

Vor allem sollte ich nochmal daran erinnern, dass das Ganze vollkommen flüssig läuft, sowohl was die hier irrelevante Rechenleistung (fps) als auch das Fehlen(!) von Nachladerucklern betrifft.

Nicht, dass irgendwem einen Vorwurf machen würde, die Progger haben die alte Engine nochmal aufgebohrt und stabil im Vanilla ist sie auch. Die Modder haben halt das beste rausgeholt.
Ist halt schade, wenn man das Potential wegen so einer Nickeligkeit nicht nutzen kann und man von "hübsch+flüssig" auf "hässlich + flüssig" wechseln muss, statt zu einem "hübsch + flüssig, evtl. seltene Nachladeruckler". Noch dümmer ist allerdings, dass ich beim Wechsel auf "hässlich + flüssig" (Patch) nochmal von vorne anfangen muss, da die Speicherstände nicht kompatibel sind... Und Frickeln bis der Arzt kommt (configs selber anpassen) nervt, dafür ist mir meine knappe Freizeit zu schade.

Naja, gestern kam ein neuer Patch, für Ende dieser Woche ist ein weiterer angekündigt. *hoff*