C'è di più nella memoria virtuale oltre alle "app che allocano la RAM e quando la RAM fisica si esaurisce, qualcosa viene trasferito su SWAP".
In Linux (e possibilmente UNIX in generale), il sistema tenta di mantenere le pagine leggere di recente nella RAM: programmi eseguiti, dati caricati, dati scritti di recente (anche su disco) ecc. Quindi, se lo stesso programma viene eseguito di nuovo, non non è necessario ricaricarlo dal disco. Quando un programma richiede l'allocazione di più memoria nel suo spazio di indirizzi virtuale, per prima cosa i buffer di disco rimanenti vengono riutilizzati (senza accesso al disco). Se ciò non bastasse, alcune pagine di app in esecuzione, a cui non è stato effettuato l'accesso di recente, vengono effettivamente scambiate. Su Linux, lo scambio normalmente non avviene affatto. Una volta che il tuo sistema inizia a scambiare, noti la maggiore attività dell'unità (e la lentezza) e vai "oh what the f .." perché probabilmente significa che alcune app perdono memoria o qualcosa sotto il cofano ha iniziato a spawnare senza controllo.
Le finestre hanno tradizionalmente una stupida abitudine aggiuntiva, che scambiano intere app dello spazio utente dopo un certo timeout sulla loro inattività. Rigorosamente, senza perdono, solo per avere quanta più RAM disponibile disponibile, "nel caso in cui" volessi avviare un'altra app affamata. Se lasci il tuo PC acceso e vai via per alcune ore, al tuo ritorno noterai che qualsiasi app in cui passi, viene ricaricata in modo slouowly dallo scambio. Questo comportamento è stato particolarmente doloroso in Windows 2000 e sta diventando gradualmente meno evidente nelle versioni più moderne di Windows. In W2k, disattivare lo swap è stato un gioco da ragazzi. Windows 7 può ancora trasudare come il miele a volte senza un motivo particolare, Windows 8.1 e 10 sono notevolmente migliorati ... ma ancora non esiste una manopola modificabile per "swappiness" o altri parametri sintonizzabili dell'algoritmo di swap.
Ci sono altri fattori che possono portare alla macinazione del sistema lungo l'accesso al disco lento. In Windows 7, non sai mai se il sistema ha appena cambiato la tua app alla vecchia maniera W2k, o se dovresti incolpare l'Antivirus per il fatto che la tua app si avvia così lentamente, o se è Windows Update a fare qualcosa nel questa volta (noto per avere stranezze alternative nei suoi algoritmi che portano a blocchi con il consumo della CPU al 100% e / o il thrashing del disco), o se in particolare alcune attività di monitoraggio di .NET Framework si sono perse nel database WinSXS o cosa. A volte / in alcune versioni / incarnazioni di software Microsoft, sembra che alcune attività "in background" native di Windows (in particolare la gestione del database locale di Windows Update) siano deliberatamente "oscurate" nel task manager, il loro utilizzo di CPU e RAM non mostra il consumo totale di memoria. Attività "legittima", ma piuttosto difficile da distinguere da un rootkit di malware ... Solo una volta che il thrashing si interrompe e appare immediatamente un fumetto che dice "sono disponibili nuovi aggiornamenti", sai qual è il motivo.
Bene, almeno le recenti versioni di Windows possono dirti l'attività di I / O del disco per processo e ora i singoli servizi sono riportati separatamente (anziché un singolo processo SVCHOST.EXE).