M
Korbinian schrieb:
wenn ich für einen algorithmus soundsoviel speicher brauche, und der schnel laufen soll, dann hab ich keine lust nachdem 1/10 des speichers verbruacht ist endlos zu warten, bis das betriebssystem so freundlich ist, mir die restlichen 9/10 des speichers endlich zur verfügung zu stellen.
das auslagern und einlagern kostet zeit, bei vielen sachen ist sowas dann ein empfindlich flaschenhals. drum ist es sehr wohl ratsam direkt angeforderten ram zunächst zur verfügung zu stellen.
Dafür hast du ja Möglichkeiten, in diesen Prozess einzugreifen indem du entweder mit ZeroMemory den Speicherbereich explizit nullst und er somit in den physischen Speicher gemappt wird oder du sperrst den Speicherblock gleich in den physischen Speicher.
Ich halte es auf jeden Fall für sinnvoller, wenn das System lieber vorsichtig in den Arbeitsspeicher mappt als gleich in die Vollen zu gehen. Benötigt man für seinen Algorithmus beispielsweise voraussichtlich 200MB, die aber nicht zwingend benutzt werden ist diese Vorgehensweise schon sinnvoll und arbeitsspeicherschonend. Auf jeden Fall besser als das System dann jeweils mit 10MB-Allokierungen zu nerven.