Trashing?
-
Hallo,
ich habe nur eine kurze verständnisfrage:
Programme nutzen doch den RAM/Hauptspeicher um zu arbeiten. Wenn ich jetzt eine riesige Datenmenge habe die nicht mehr in den Speicher passt werden doch Seiten ein bzw. ausgelagert.
Das bremst doch das Programm bzw. den Rechner in seiner Berechnung oder?
Schlimmstenfalls ist er nur noch mit Seitenein/auslagern beschäftigt - > trashing oder?
Wohin lagert er ein/aus? Auf die Festplatte? Aber wohin? Irgendein Tmp Segment oder sowas?Also meine Frage geht eigentlich um folgendes:
Ich habe ein Hash (primitiv) realisiert das unter Umständen mit einer gewaltigen Datenmenge gefüllt werden könnte die viel grösser als der RAM ist - was passiert dann?
-
Der Speicher wird in den swap-Space oder die Auslagerungsdatei geschrieben. Aber das passiert ohne hin ständig. Du solltest bei dem Programm eben darauf achten, dass du immer auf kompakten Speicherstellen arbeitest. Wenn du kreuz und quer über alle Segmente gehst, wird dein Betriebssystem eben ständig ein/auslagern müssen.
-
gast_xy schrieb:
Ich habe ein Hash (primitiv) realisiert das unter Umständen mit einer gewaltigen Datenmenge gefüllt werden könnte die viel grösser als der RAM ist - was passiert dann?
dein programm bekommt nen memory allocation error zwischen die beine geschmissen. bei sehr speicherintensiven aktionen solltest du auch das zielsystem im auge behalten. viele betriebssysteme kappen schon speicheranforderungen, lange bevor der ram eigentlich voll ist. als faustformel ist ne maximale speichernutzung von 2 GB sinnvoll.
-
gast_xy schrieb:
Schlimmstenfalls ist er nur noch mit Seitenein/auslagern beschäftigt - > trashing oder?
Du meinst http://de.wikipedia.org/wiki/Paging ?
-
ß098?=)( schrieb:
gast_xy schrieb:
Schlimmstenfalls ist er nur noch mit Seitenein/auslagern beschäftigt - > trashing oder?
Du meinst http://de.wikipedia.org/wiki/Paging ?
Nein, er meint http://de.wikipedia.org/wiki/Thrashing#Thrashing_und_Working_Set