Hi,
ja, das Indiz soll sein, dass die Anwendung X anmeldet: Ich brauch *jetzt* 80MB Arbeitsspeicher. Sonst nichts. Auf eine bloße Ahnung hin zu agieren, finde ich unsinnig.
das "jetzt" heisst, dass erstmal 80 mb von der festplatte in den arbeitsspeicher geschaufelt werden müssen, ist dir klar?
wir reden offenbar immer noch von verschiedenen Fällen. Was du beschreibst, ist nicht die Anmeldung von Speicherbedarf, sondern der Zugriff auf Speicher, den die Anwendung längst hat, der aber mittlerweile ausgelagert worden ist. Ich sprach aber vom neu entstehenden Bedarf an Speicher (und so hatte ich dich bisher auch verstanden).
Ja, und dann kann die Speicherzuteilung ja auch in dem Moment geschehen, wenn du das Tool startest. Das dauert ja, wie du selbst sagst, "nur Nanosekunden".
ein paar kb von der festplatte lesen dauert länger als diese bereits im arbeitsspeicher zu halten, auch wenn das zeug vielleicht garnicht benötigt wird - wenns wirklich nicht benötigt wird, muss man das zeug ja nicht erst wieder auf die platte zurückschreiben und verliert dadurch keine zeit - wie bereits gesagt: es kostet keine zeit, den speicher wieder zu leeren - das befüllen kostet zeit und wenn das aufgrund einer "vorahnung" passiert, spart sich der endanwender die zeit
Jetzt wird's langsam klar: Ja, du redest von Speicher, der längst zugeteilt und auch schon von der Anwendung benutzt worden ist. Ich hatte dich so verstanden, als ob das Betriebssystem einfach auf Verdacht entscheiden solle, "ach, hier wird ein Prozess gestartet, dem teile ich gleich mal 256MB Arbeitsspeicher zu, vielleicht braucht er's ja".
Wenn er nicht verwendet wird, brauche ich ihn auch nicht zuzuteilen. Sondern erst dann, wenn auch der Bedarf entsteht.
vorausplanung :)
Offensichtlich meinst du mit "Zuteilung" den Wieder-Abruf von ausgelagerten Speicherbereichen, die dem Programm längst "gehören". Das ist etwas ganz anderes als ich anfangs verstanden habe, und in diesem Fall stimme ich dir sogar zu, was die Sinnhaftigkeit betrifft.
es muss ja nichts umgeschichtet werden - die speicherzuordnung wird einfach gemüllkübelt - das dauert ernsthaft nur wenige nanosekunden (das ist ein ein paar taktzyklen erledigt) - nerviges und wirklich zeitraubendes swapping entfällt damit weitestgehend
Ich verstehe immer noch nicht, wo du den Zusammenhang siehst.
Entweder:
Ich habe wenig Arbeitsspeicher, und muss mir mit einer Auslagerungsdatei helfen. Dann ist es vorteilhaft, die bereits zugeteilten Speicherbereiche so lange wie möglich physikalisch im RAM zu behalten. Fordert eine Anwendung weiteren Speicher an, kann man sich überlegen, was günstiger ist: Sofort "vorausschauend" im RAM Platz zu schaffen, indem man andere Speicherbereiche auslagert, oder das erst dann zu tun, wenn die Anwendung auf ihren versprochenen Speicher zugreifen will.
Oder:
Ich habe reichlich Speicher und bin nicht auf eine Auslagerungsdatei angewiesen. In dem Fall ist die Zuteilung "auf Verdacht" in jedem Fall unnötig und bringt keinen Vorteil, weil sie bei Bedarf tatsächlich "just in time" in Sekundenbruchteilen zu erfüllen ist. Unsinn wäre vor allem, für eine Anwendung "auf Verdacht" Speicher zu reservieren, und dafür doch erst andere Speicherinhalte auslagern zu müssen.
Übrigens: Zwei der PCs in meiner Umgebung haben 2GB RAM (die anderen weniger), und bei denen habe ich das Auslagern (Windows-Terminologie: den virtuellen Speicher) komplett deaktiviert. Das ist fein! Die Festplatte bleibt viel ruhiger. Da merkt man erst mal, wie oft Windows unnötig auf die Auslagerungsdatei zugreift, wenn man ihm eine zur Verfügung stellt!
Ciao,
Martin