Ho letto molto sull'impegno e qualcosa mi sta ancora infastidendo. Sul mio mac (e probabilmente anche su Linux), qual è la relazione tra dimensione della VM e memoria Commit (Windows). Penso di aver compreso appieno il commit dopo alcuni test, ma in Windows non sembra che la quantità di memoria virtuale superi mai lo spazio di swap + ram. IN OSX (e Linux) la dimensione della VM sembra quasi superare la dimensione del mio hard disk! Immagino che includa la memoria condivisa più di una volta oppure include allocata ma non trattata o scritta nella memoria. Diciamo che faccio un malloc (2 GB) (ovviamente non in questo modo), è diverso dal scrivere effettivamente a quell'intero 2 GB.
Quindi questo mi porta alla mia domanda: che cosa esattamente misura la dimensione della VM in OSX e Linux. È un totale di tutte le chiamate malloc, ad esempio (o il totale possibile di VM, ad esempio, incluso praticamente 4 GB per ogni processo su una macchina a 64 bit), e come si confronta con Commit (limite, picco, utilizzo) su Windows? Windows non ti consente di allocare più del tuo limite swap + ram, come fanno OSX e Linux e perché?
Nelle immagini sottostanti puoi vedere che in windows swap + ram equals commit (2gb). In OSX la mia dimensione della VM è superiore a 200 GB su un hard disk di circa 200 GB.