Zestaw prywatny kontra bajty VS w Eksploratorze procesów


39

Wiem, że zestaw roboczy to faktyczna ilość pamięci używanej przez proces, a także, że bajty prywatne to ilość zarezerwowana na wypadek, gdyby potrzebowała więcej.

Czy dodałbym te dwa elementy, aby dowiedzieć się, ile RZECZY ODBIERA SIĘ od innych procesów w systemie?

Odpowiedzi:


52

Obawiam się, że to nie jest takie proste. W szczególności bajty prywatne nie są bardzo przydatne do odpowiedzi na postawione pytanie.

Pierwszą rzeczą do zapamiętania jest to, że strona pamięci może istnieć w pamięci głównej lub w pamięci zewnętrznej (obecnie „stronicowanie dysku” lub „wymiana”). Drugi polega na tym, że proces będzie zawierał prywatne strony pamięci, ale będzie również używał obiektów na wspólnych stronach, z których korzystają inne procesy w tym samym czasie.

Zestaw roboczy to rozmiar stron należących do procesu, które są obecnie przechowywane w pamięci głównej. Gdy strona pamięci używana przez proces jest przenoszona do pliku strony, jest usuwana z metryki zestawu roboczego, a gdy jest ponownie wywoływana do pamięci głównej, jest ponownie dodawana.

Zestaw roboczy nie odnosi się jednak wyłącznie do pamięci, którą posiada Twój proces. procesy wykorzystują wiele obiektów pamięci współużytkowanej, a rozmiar tych obiektów jest odzwierciedlony w statystykach. niestety, gdy dwa procesy współużytkują obiekt 1 MB, oba procesy wykazują przydział 1 MB w zestawie roboczym, więc jeśli dodasz wszystkie zestawy robocze, obiekt 1 MB zostanie zapisany dwukrotnie, więc akumulacja wszystkich rozmiarów zestawu roboczego może w skrajnych przypadkach wydaje się, że przekracza rozmiar dostępnego suwaka. zobacz więcej tutaj: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/

Prywatne bajty odnoszą się do ilości miejsca w pliku strony przydzielonego do procesu (niekoniecznie używanego) w przypadku, gdy ślad prywatnej pamięci procesu jest całkowicie stronicowany w celu zamiany. przez większość czasu proces ten nie jest rezydentem pliku stronicowania (w ogóle), dlatego wydaje się, że w prywatnych bajtach jest „miejsce” na dalszą alokację. Tak jednak nie jest.

Bajty prywatne odnoszą się jednak tylko do pamięci prywatnej procesów, więc ta wartość może nie odzwierciedlać zasobów współużytkowanych (nawet jeśli zasoby współdzielone są obecnie używane tylko przez ten proces).

„Zestaw roboczy Prywatny” („WS Prywatne bajty” lub „Prywatny WS” w eksploratorze procesów w zależności od wersji) jest prawdopodobnie najlepszym miernikiem do użycia. nie dotyczy samego pliku strony, więc otrzymujesz dokładną reprezentację wpływu procesów na fizycznego ramana i nie liczy podwójnie współdzielonych obiektów. obiekty współdzielone są porównywane raz (tylko dla procesu, który je utworzył), ale oznacza to również, że z perspektywy jednego procesu nie rejestrujesz, że twój proces używa obiektów współdzielonych utworzonych przez inny proces, więc twój proces może użyć więcej pamięci RAM na innym procesie komputer lub w sytuacji, gdy konieczne było utworzenie samego obiektu współużytkowanego zamiast korzystania z innej instancji tego procesu. Menedżer zadań systemu Windows używa prywatnego zestawu roboczego jako metryki zużycia pamięci.

mam nadzieję, że to pomaga


1
Czy miałbym więc rację mówiąc, że „Prywatne bajty” to ilość pamięci, o którą poprosił proces, a „Zestaw roboczy” to Prywatne bajty plus trochę dodatkowej pamięci współdzielonej, z której mogą korzystać inne procesy? A także „prywatny zestaw roboczy” to ilość prywatnej pamięci obecnie w fizycznej pamięci RAM, która jest najdokładniejszym odwzorowaniem ilości pamięci, której faktycznie używa?
Scandalist

4
tak, właściwie. jeśli martwisz się o darmowy zestaw roboczy, prywatny zestaw do pracy jest dobrym wyborem. jeśli martwisz się o plik stronicowania lub pełne zatwierdzenie (ram + pamięć wirtualna), prywatnym bajtem jest dobra metryka.
Frank Thomas

„Prywatne bajty” to prywatna wirtualna przestrzeń adresowa procesu. Niektóre z nich mogą znajdować się w pliku stronicowania, inne w pamięci RAM, niektóre w obu miejscach, niektóre - prawdopodobnie większość - może nie mieć jeszcze przypisanej fizycznej pamięci (jeszcze). Jest to wkład procesu w ogólną „opłatę za zatwierdzenie” systemu. „Prywatny zestaw roboczy” to podzbiór „prywatnych bajtów” znajdujących się w pamięci RAM. Uwaga: Na ekranach RAMmap nie znajdziesz „prywatnych bajtów” ani niczego podobnego, ponieważ RAMmap dotyczy tylko pamięci fizycznej (RAM), a nie wirtualnej.
Jamie Hanrahan,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.