Plik stronicowania nigdy nie zwiększy wydajności, ale niekoniecznie obniża go (przy odpowiednim zarządzaniu pamięcią). Jednak uruchamianie bez pliku strony będzie miało tendencję do zwiększania niestabilności systemu tylko w przypadku aplikacji żądających pamięci, która nie jest dostępna do użycia.
O ile twój system operacyjny nie jest szczególnie kiepski w zarządzaniu pamięcią, plik stronicowania z 6GiB pamięci powinien być mało użyteczny. Nie oznacza to, że w ogóle nie zobaczy zastosowania; IIRC MS Windows jest trochę szalony, jeśli chodzi o stronicowanie, nawet gdy jest dużo dostępnej pamięci. (Dlaczego nigdy się nie dowiem.)
Jednak to, co dzieje się, gdy nie używasz pliku strony, może być wystarczającym powodem, aby go włączyć: ciężkie awarie. Większość aplikacji oczekuje otrzymania żądanej pamięci. Kiedy tego nie robią, rozbijają się. (Ach, ale dawne dobre czasy życia w kilku tysiącach bajtów minęły ... i dla zbyt wielu programistów, podobnie jak praktyka zarządzania pamięcią).
Jeśli aplikacja jest poprawnie zbudowana, ładnie się nie powiedzie. (Przy odrobinie szczęścia w ogóle się nie zawiedzie. Ale nie licz na to.) W przypadku większości aplikacji masz fantastyczną porażkę. Co więcej, im więcej aplikacji zbliża się do tego limitu, tym większe prawdopodobieństwo niestabilności w całym systemie.
Sprawa z własnego doświadczenia. Windows XP, 4GiB, brak pliku strony. Perf był świetny. Dopóki nie zaczęliśmy zbliżać się do limitu 4GiB. Potem wszystko szaleje: aplikacje ulegają awarii, elementy menu pojawiają się tylko częściowo (lub wcale), przyciski nic nie robią itp. Wróciłem do pliku strony, mimo że wydajność była z nim gorsza - ogólna stabilność była po prostu lepsze i ważniejsze.
Być może teraz nie używasz żadnych aplikacji ani nie pracujesz w aplikacjach, które popchnęłyby 6GiB, ale mogę wymyślić kilka sytuacji, w których możesz się zbliżyć: edycja wideo, edycja fotografii, miksowanie i produkcja dźwięku itp. - zasadniczo wszystko, gdzie masz do czynienia z dużą ilością danych (z pracą lub przesyłaniem strumieniowym). Gdy te dane przekroczą możliwości pamięci, istnieje duża szansa, że twoja aplikacja przejdzie w tryb „kupa”.
W tym artykule Mark Russinovich dowiesz się wszystkiego, co chciałeś wiedzieć o pliku strony.
Nie wiem, czy „pamięć podręczna” jest właściwym terminem stosowanym w odniesieniu do tego, co robi plik strony. Pamięć podręczna to szybko dostępne tymczasowe miejsce przechowywania danych. System operacyjny „psuje” rzeczy w pliku strony, gdy istnieje zbyt duża rywalizacja o fizyczną pamięć RAM. Jest to więc zatrzymanie przepełnienia pamięci RAM, aby zapobiec awariom programów z powodu braku pamięci. Ale wierzę, że Windows próbuje umieścić rzeczy, które nie były dostępne przez jakiś czas w pliku strony (i Linux może to zrobić), więc w tym sensie jest to pamięć podręczna, ale tak naprawdę nie jest to jej podstawowa funkcja.
W każdym razie przeczytaj artykuł. To da ci dobre wskazówki, jak ustawić plik stronicowania. Jak mówi @Sandeep Bansal, może się zdarzyć, że od czasu do czasu możesz mieć jedną z nich w ramach „sprawdzania wymagań” w celu uruchomienia (ale nie znam żadnej).
EDYCJA: Ten przykład może pomóc zrozumieć rolę pliku strony:
Powiedzmy, że masz 512 MB pamięci RAM. Masz otwartych wiele programów, w tym samą zminimalizowaną przeglądarkę, która zużywa 250 MB pamięci RAM, a całkowite użycie pamięci RAM przez wszystko, co działa w tym momencie, wynosi 500 MB.
Następnie uruchamiasz inny program (powiedzmy edytor tekstu), który chce przydzielić 150 MB pamięci RAM. Brak pamięci. Jeśli jednak mamy system stronicowania, strony pamięci zawierające zminimalizowaną przeglądarkę można przenieść na dysk. Zatem nowy program może się załadować.
Powiedzmy, że po chwili chcesz wrócić do przeglądarki. Cóż, musi „wczytać” to, co właśnie wysłał na dysk. Jeśli w tym momencie jest wystarczająca ilość wolnej pamięci RAM, można to zrobić bez problemu. Jeśli nie, najpierw trzeba znaleźć coś innego. Jeśli wiele procesorów konkuruje o procesor i występuje ciągłe stronicowanie, wtedy dzieje się powoli i występuje warunek zwany „thrashingiem”. Całe to wchodzenie i wyłączanie stronicowania powoduje mniejszą wydajność, ale pozwala uniknąć „twardego” awarii programów z powodu błędów braku pamięci. Taki jest cel pliku stronicowania. Zbyt dużo stronicowania, tj. „Thrashowanie” prawdopodobnie nie jest lepsze niż program po prostu się poddaje, ponieważ przez większość czasu nie może uzyskać więcej pamięci RAM.
Teraz możesz zobaczyć, jak jeśli istnieją algorytmy przewidujące, co może nie być używane w danym momencie, to system operacyjny może „wstępnie wydrukować” rzeczy, które według niego nie zostaną użyte od razu. To rozlicza system Windows za pomocą pliku strony, jeśli istnieje, nawet jeśli ma wystarczającą ilość pamięci RAM. Stara się udostępnić jak najwięcej pamięci RAM. Windows jest jak Linux, w którym wolna pamięć RAM działa jako pamięć podręczna dysku, więc jeśli gra się w równoważenie, to może przyczynić się do ogólnej wydajności. To wszystko jest częścią projektu systemu operacyjnego i dlaczego 10 lat zajmuje uzyskanie dobrego systemu operacyjnego od tysięcy programistów.
Tak więc, aby faktycznie odpowiedzieć również na twoje pytanie, to jedyna rzecz nie tak z wyłączeniem pliku stronicowania. Wracając do podanego przeze mnie przykładu, bez pliku strony po prostu nie byłbyś w stanie uruchomić przeglądarki lub źle napisane programy, które nie są programowo defensywne w celu przewidywania błędów OOM, mogłyby działać naprawdę dziwnie.
źródło
in general having [a page file] will mean more usable memory being available to the system
. Czekaj, co? Więcej dostępnej pamięci? Czy> 3 GiB trwale nieużywanego miejsca w pamięci RAM jest niewystarczające? (Mylić, ponieważ rzadko używam nawet ponad 2 GiB.)Plik stronicowania nie służy tylko do przechowywania zrzutów awaryjnych, ale nie jest do tego stworzony.
Plik strony istnieje, więc może przechowywać dane, których pamięć RAM nie musi przechowywać, jest jak pamięć podręczna dla elementów, które nie muszą istnieć w pamięci, zapewniając w ten sposób więcej pamięci RAM na inne rzeczy.
Masz rację, że możesz nie potrzebować pliku strony, jeśli masz 6 GB pamięci RAM, ale możesz potrzebować pliku strony dla niektórych elementów, pamiętam, że kilka gier wymaga pliku strony, a także może być przydatny, jeśli taki istnieje.
Utworzenie pliku stronicowania o wielkości 500 MB nie szkodzi tylko po to, aby uniknąć problemów, jeśli określony proces tego potrzebuje.
źródło
Pierwszym krokiem jest zrozumienie, czym jest pamięć podręczna, a raczej do czego służą różne pamięci podręczne.
CPU ma małą pamięć podręczną, która pozwala mu przechowywać wyniki OP, stany flag i obliczone adresy. Na podwójnym rdzeniu uważam, że wewnętrzna pamięć podręczna ma rozmiar około 1 MB. Jest niezwykle szybki, dostępny tylko dla wewnętrznych elementów procesora, a najbardziej odczuwa go ciepło podkręconego procesora.
Pamięć podręczna poziomu 2 działa jako szybki bufor dla transakcji między procesorem a pamięcią, a także przechowuje wątki kodu zebrane przez pobranie wstępne. Na podwójnym rdzeniu uważam, że typowa instalacja miałaby 6 MB pamięci podręcznej na poziomie 2. Jest bardzo szybki, choć wolniej niż wewnętrzna pamięć podręczna, jest dostępny tylko dla kontrolera pamięci i procesora i znajduje się na dedykowanej linii na magistrali.
Plik strony jest rzeczywiście pamięcią podręczną, ponieważ przechowuje dane, które mogą, ale nie muszą znajdować się w pamięci. System operacyjny może używać pliku stronicowania do różnych zadań, z których jednym jest zapisanie bieżącego stanu pliku danych, który nie został jeszcze zatwierdzony na dysk. Gdy plik stronicowania nie istnieje, to do aplikacji zewnętrznej należy zapewnienie tej funkcjonalności wewnętrznie. Problem w tym scenariuszu polega na tym, że wiele programów nie zachowuje się dobrze, jeśli chodzi o wyrzucanie elementów bezużytecznych, a na dysku pozostają fałszywe pliki .temp. Te resztki nie są częścią manifestu instalacyjnego i mogą utrudniać procedurę odinstalowywania, a także zmniejszać szybkość dostępu do dysku.
Moim zdaniem plik wymiany jest zwykle dobrym rozwiązaniem. Rzeczywiście, jeśli twój system jest bardzo zapełniony Ramem i jest dedykowany 1 konkretnemu zadaniu, a ta aplikacja zajmuje się tymi wszystkimi rzeczami, plik wymiany może nie być potrzebny. Jednym z przykładów może być arkadowa gra wideo, która działa na platformie Windows. Zazwyczaj są one instalowane tylko ze sterownikami potrzebnymi dla obecnych urządzeń i prawdopodobnie nie cierpią z powodu rywalizacji ze sterownikami. W przeważającej części jednak większość aplikacji nie zajmuje się wszystkimi potencjalnymi problemami, które mogą się pojawić, a zwłaszcza tymi, które obejmują wpływ aplikacji innych firm i rywalizację sterowników.
Chociaż możesz zauważyć niski do umiarkowanego spadek wydajności w krótkim okresie dodawania pliku strony, w dłuższej perspektywie wydajność powinna pozostać niezmienna. Brak pliku stron może na początku wydawać się szybszy, ale z czasem wydajność znacznie się obniży.
Steven Malm, MCP.
źródło
Osobiste doświadczenie
W tej chwili mój laptop z 8 GB pamięci RAM ma problemy uniemożliwiające utworzenie / użycie pliku strony. Moje życie to piekło. Ciągle pojawiają się monity o „małej pamięci”, awarie aplikacji itp. Korzystanie z 3 programów, które jedzą 1-1,5 GB każdy (powiedzmy, przeglądarki internetowej, programu Visual Studio ze specjalnymi wtyczkami itp.), Chodzi po cienkim lodzie.
Kolejny argument
Korzystanie z danych z fizycznej pamięci podręcznej RAM jest bardzo szybkie. Im więcej „wolnej” fizycznej pamięci RAM, tym większa pamięć podręczna może pomieścić. Im więcej uśpionych danych system operacyjny może przenieść z fizycznej pamięci RAM do pliku strony, tym więcej fizycznej pamięci RAM jest zwolnione dla pamięci podręcznych często używanych danych.
Załóżmy, że grasz w grę, która ładuje dane lokalizacji po zmianie lokalizacji. Masz również uruchomioną przeglądarkę internetową, która pozostawia, powiedzmy, 2 GB do gry, co wystarcza na jedną lokalizację. Bez pliku strony za każdym razem, gdy zmieniasz lokalizację, dane będą powoli ładowane z dysku twardego. Dzięki plikowi strony nieużywane dane przeglądarki internetowej zostaną przesłane do pliku strony, a cenna fizyczna pamięć RAM zostanie użyta do przechowywania danych dla kilku lokalizacji, co spowoduje znacznie szybsze ładowanie lokalizacji.
źródło