Wyłączyłem plik stronicowania w moim systemie (dysk twardy jest zbyt wolny, nie mogę od razu kupić nowego, nie mogę przenieść pliku stronicowania na inną partycję). Gdy zajrzę do Monitora zasobów, używając aplikacji wymagających pamięci, system pokazuje, że opłata zatwierdzenia jest prawie w 100% pełna. Rzeczywiście, jeśli nadal wymagam więcej pamięci, programy zaczynają się zawieszać, gdy ładowanie zatwierdzenia faktycznie osiąga 100%.
Tymczasem system mówi, że używam tylko 50–60% pamięci fizycznej i mam około 1 GB dostępnej pamięci (wolna + gotowość).
Jeśli opłata za zatwierdzenie jest faktycznie żądaną całkowitą pamięcią, dlaczego system mówi, że tyle pamięci jest wolne? Czy system Windows nie używa pamięci fizycznej? Czy wykres pamięci jest nieprawidłowy? Czy coś brakuje?
źródło
Odpowiedzi:
Skończył się limit zatwierdzeń, gdy wciąż masz dużo dostępnej pamięci RAM, wcale nie jest niczym niezwykłym. Ani limit zatwierdzania, ani opłata zatwierdzania nie są bezpośrednio związane z wolną lub dostępną pamięcią RAM.
Limit zatwierdzeń = bieżący rozmiar pliku strony + rozmiar pamięci RAM.
Ponieważ nie masz pliku strony, limit zatwierdzeń jest mniejszy niż byłby, gdybyś miał plik strony. Nie ma znaczenia, ile pamięci RAM jest wolne . Dla limitu zatwierdzeń liczy się tylko ilość zainstalowanej pamięci RAM . Możesz skończyć limit zatwierdzania nawet przy 90% wolnej pamięci RAM lub dostępnej.
Opłata za zatwierdzenie jest liczbą pamięci wirtualnej, a nie fizycznej. Załóżmy, że mój program prosi o zatwierdzenie 2 GB, ale uzyskuje dostęp tylko do 0,5 GB. Pozostałe 1,5 GB nigdy nie zostanie uszkodzone, nigdy nie zostanie przypisane do pamięci RAM, więc użycie pamięci RAM nie odzwierciedla 2 GB, tylko 0,5 GB.
Mimo to „zatwierdzanie systemu” zostało zwiększone o 2 GB, ponieważ system „zobowiązał się”, że BĘDZIE miejsce na moje 2 GB, na wypadek, gdyby rzeczywiście potrzebowałem tego wszystkiego. Fakt, że w danym uruchomieniu programu niekoniecznie będę próbował go użyć, nie pomaga. Poprosiłem o 2 GB, a pomyślny powrót z tego połączenia mówi mi, że system operacyjny „zobowiązał się” - tj. Obiecał - że mogę użyć tyle wirtualnej przestrzeni adresowej. System operacyjny nie może dać tej obietnicy, chyba że jest miejsce, w którym można to wszystko zatrzymać.
Więc: odłóż plik strony z powrotem, dodaj więcej pamięci RAM lub uruchom mniej rzeczy za jednym razem. Lub jakąś kombinację tych trzech. Są to jedyne opcje uniknięcia błędów związanych z brakiem pamięci i brakiem pamięci.
Zobacz także moje odpowiedzi tutaj (dłużej) i tutaj (znacznie dłużej).
źródło
Jak pokazuje test alokacji pamięci w artykule na stronie http://brandonlive.com/2010/02/21/measuring-memory-usage-in-windows-7/ , Windows jest rodzajem systemu, który zawiódłby dużą alokację pamięci jeśli taka alokacja wraz ze wszystkimi wcześniejszymi alokacjami (koncepcja, którą Microsoft nazywa „zatwierdzeniem”), spowodowałaby, że całkowite „zatwierdzenie” przekroczyło zarówno sumę pamięci fizycznej, jak i sumę wszystkich plików stron (zamiana).
Należy wziąć pod uwagę, że sama alokacja nie korzysta z żadnej rzeczywistej pamięci (ani fizycznej, ani wymiennej), zanim nastąpi odczyt lub zapis w wirtualnej przestrzeni adresowej procesu dla wyżej wymienionej alokacji. Np. Przydział 2 GB sam w sobie wpływałby tylko na numery „Zatwierdź” (w rozmowie z Windows 7), pozostawiając „Pamięć fizyczną” samą (aż do odczytu / zapisu w ramach wspomnianego przydziału).
Jeśli chodzi o projekt systemu operacyjnego, alternatywnym podejściem byłoby zawsze zezwolenie na alokację dowolnego rozmiaru (chyba że dostępna pamięć jest już całkowicie wyczerpana), a następnie pozwolić aplikacjom na awarię podczas odczytu / zapisu. Aby uzyskać więcej informacji, zobacz https://cs.stackexchange.com/questions/42877/when-theres-no-memory-should-malloc-or-read-write-fail .
źródło
Dostępna pamięć nie jest taka, jak myślisz. Nie niewykorzystane, tak naprawdę, pamięć podręczna plików ostatnio zakończonych procesów lub przyciętych procesów, które zostały zmuszone do oddania pamięci innym procesom. Można je było przywrócić do pierwotnego celu. zobacz więcej szczegółów.
http://support.microsoft.com/kb/312628
Jeśli nie ma pliku strony, jest to bardzo złe. Windows słabo degraduje bez niego. Pamiętaj, że nawet pliki wykonywalne są używane jako pliki wymiany, gdy nie ma pliku strony. Nawet jeśli dysk jest wolny, lepiej mieć plik stronicowania, dopóki nie uzyskasz od 8 do 16 gigabajtów pamięci. Niektórzy uważają, że nawet Windows 7 może wtedy działać bez niego.
Regularnie poprawiam starą maszynę, wykonując kilka czynności. Wyczyść dysk twardy tak bardzo, jak to możliwe. Skopiuj wszystko, co możesz tymczasowo usunąć z dysku na kopię zapasową. Usuń aplikacje, których nie potrzebujesz. Usuń aplikacje można zainstalować ponownie.
Po tym wszystkim zdefragmentuj dysk twardy. W tym momencie utwórz ponownie plik strony. Będzie on jak najbliżej przodu napędu. Utwórz stały rozmiar około 1,5 raza w pamięci. To moja reguła, zwykle widziałem rozmiary między 1 a 3 pamięcią czasu. To da mu niewielki wzrost prędkości w stosunku do zwykłych miejsc, w których byłby umieszczony.
Korzystam z auslogic defrager - jest darmowy (reklamy na więcej narzędzi). Są też inne, które to robią. Sprawdź defragers na portableapps.com. Optymalizuje dysk, umieszczając ostatnio używane pliki w pobliżu przedniej części dysku, aby uzyskać szybszy dostęp. Pokazuje, gdzie jest umieszczony plik strony, dzięki czemu można sprawdzić, czy przeniesiono go do 25% górnej części dysku.
Następnie zainstaluj ponownie aplikacje i skopiuj dane.
Powiedziałbym, że dostajesz 10 lub 20% doładowania. Ale główna wartość polega na tym, że wiele wahań odchodzi, aby zapewnić płynniejsze wrażenia.
źródło