W jaki sposób pamięć wirtualna może być większa niż całkowita dostępna przestrzeń?

9

Dlaczego mój MBP czasami zgłasza się VM Size: 300+ GBw Monitorze aktywności na karcie Pamięć systemowa, kiedy mój dysk twardy ma tylko 250 GB (łącznie), a pamięć RAM wynosi 4 GB? Wiem, że magicznie nie może uzyskać tej dodatkowej przestrzeni, ale co mi to mówi?

Joel Spolsky
źródło

Odpowiedzi:

3

Wszystko to jest wyobrażone, więc jakaś kombinacja programów mówi, że może kiedyś tak wiele zużyć. Nie martw się, chyba że przestrzeń wymiany wzrośnie powyżej rozmiaru pamięci RAM lub gdy aktywny + RAM RAM jest większy niż 75% fizycznej pamięci RAM. (3 GB w twoim przypadku)

Zasadniczo ten pomysł przyspiesza obsługę pamięci podczas działania systemu. Ponieważ programy wciąż proszą o coraz więcej pamięci, system rozdziela wirtualne fragmenty wirtualnej pamięci RAM z mnóstwem miejsca między przydziałem każdego procesu. To sprawia, że ​​niektóre bardzo popularne obliczenia są łatwiejsze i szybsze i bardzo mało prawdopodobne jest, aby regiony kiedykolwiek się nakładały. Gdy regiony pamięci wirtualnej nakładają się na siebie, bardziej kosztowne jest wstrzymywanie rzeczy i ponowne mapowanie pamięci w działającym programie. Cała ta mentalna olimpiada z pamięcią wirtualną sprawia, że ​​Twój Mac działa szybciej.

bmike
źródło
3

Udostępniane biblioteki i struktury są liczone jako część pamięci wirtualnej dla każdej aplikacji która ich używa.

Jeśli na komputerze działa 100 procesów i biblioteka 5 MB jest używana przez wszystkie te procesy, biblioteka ta jest liczona jako 500 MB pamięci wirtualnej.

Możesz także zsumować liczby w kolumnie Pamięć wirtualna na liście procesów - dokładniejszą nazwą dla tej kolumny jest „Wirtualna pamięć prywatna ”. Nie obejmuje udostępnionych danych.


100 procesów nie jest tak wysoką liczbą, jak się wydaje (obecnie mam 75 na MBP i działam znacznie mniej niż zwykle).

Niektóre biblioteki są używane przez prawie każdą aplikację w twoim systemie, nawet te bez interfejsów. Po dodaniu wszystkich bibliotek współdzielonych w systemie masz dużą ilość danych, które w rzeczywistości zajmują bardzo mało pamięci.

Jak wspomniał bmike, powinieneś bardziej martwić się przestrzenią wymiany lub aktywnym + przewodowym ram. W tej chwili Monitor aktywności mówi mi, że mam 170 GB pamięci wirtualnej, ale używam tylko 1,5 MB przestrzeni wymiany.

ughoavgfhw
źródło