Cosa succede quando un computer esaurisce la RAM?


9

Poco fa, per curiosità, ho scritto un programma Java che occupa molta memoria molto velocemente. (Aggiunge BufferedImages a un arraylist in un ciclo.)

Ho tenuto il Monitor di sistema di Windows aperto per osservare l'utilizzo della RAM durante l'esecuzione.

Quando ho avviato il programma, l'utilizzo della RAM è cresciuto molto velocemente e quando ha raggiunto circa il 100% dei miei 6 GB di RAM, il mio computer è diventato estremamente lento. Dopo circa un minuto, sono riuscito a terminare il programma e il mio computer ha lentamente recuperato la velocità. Ciò che ha attirato la mia attenzione è stato che l'utilizzo della memoria è diminuito prima lentamente, poi all'improvviso è sceso a quasi 0 MB prima di risalire fino all'utilizzo inattivo a circa 2-2,5 GB.

Ho preso uno screenshot dell'utilizzo della RAM nel Monitor di sistema:

inserisci qui la descrizione dell'immagine

Mi chiedevo se qualcuno potesse spiegare cosa succede quando il computer esaurisce la memoria e perché non ritorna inattivo subito dopo la fine del programma ma dopo circa 60 secondi? Inoltre, perché l'utilizzo si riduce a zero invece del solo utilizzo inattivo?



Questo è non 0 MB (o anche vicino ad esso). Supponendo di aver catturato uno screenshot dell'intero grafico, il punto più basso è 814 MB ; ancora di più se lo hai ritagliato.
Synetech,

Risposte:


15

Quando inizi a raggiungere il limite della memoria principale, il tuo sistema operativo inizierà a scambiare memoria su disco per fare spazio a più cose (questo si chiama paging ). Questo è il motivo per cui il tuo computer sta diventando davvero lento perché l'unità disco è molto più lenta della RAM, anche se sei su un SSD, ed è anche il motivo per cui il tuo programma può andare avanti senza memoria principale.

La memoria inattiva viene spesso scambiata per prima in modo che i programmi attivi possano avere il più possibile nella RAM. Questo è il motivo per cui l'utilizzo della memoria scende al di sotto del normale stato di inattività. Il sistema inizierà nuovamente a scambiare le pagine di memoria e alla fine la memoria inattiva si riempirà di RAM.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.