allokierter Speicher nicht im TaskManager
-
Hallo,
Wenn ich mit new char[1024000] speicher reserviere müßte doch eigentlich
im erfolgfall 1000 Megabyte speicher reserviert worden sein. Der Taskmanager
zeigt dies aber nicht an. Warum nicht?Windows 2000
danke
-
1. Du reservierst nur 1024000 Bytes. Das macht 1024000/1024/1024 = knapp 1MB.
2. Du musst den Speicher auch benutzen. Sonst ist der Speicher nur virtuell verfügbar und wird nicht von Windows freigeschaufelt und deinem Programm zugewiesen (-> Auslagerungsdatei).Das Benutzen kannst du zum Beispiel so simulieren:
const unsigned int max = 268435456; char* c = new char[max]; for(;;) c[rand() % max] = 0;
Das rand ist wichtig, denn wenn du sequentiell durchläufst, lagert Windows den gerade ungenutzten Speicher wieder aus.