Czy istnieje sposób (aplikacja) do kontrolowania zasad użycia pamięci RAM / swap na poziomie aplikacji.
Mam kilka aplikacji, z których cały czas korzystam i chcę, aby pozostały w pamięci RAM przez cały czas. Są też aplikacje, z których rzadko korzystam i mogą być wyrzucane w celu zamiany na żądanie. Wiem, że domyślnie skonfigurowane okna powinny dać mi najlepszą wydajność, ale chcę sprawdzić, czy mogę uzyskać więcej :).
Korzystam z systemu Windows 7.
windows-7
performance
swap
Darqer
źródło
źródło
Odpowiedzi:
Tak, istnieje: niech program wywoła funkcję VirtualLock :
Uważam, że funkcja SetProcessWorkingSetSize może być również pomocna.
Dla tych, którzy myślą, że jestem heretykiem, nawet sugerując, że może to być przydatne:
Zauważ, że mogą istnieć ważne powody blokowania stron w pamięci. Prawidłowym powodem może być to, że użytkownik uruchamia nagrywarkę CD, a nagrywarka CD ciągle wysuwa strony, a zatem powoduje niedopełnienie bufora, tworząc kolejkę. W takiej sytuacji dobrze byłoby zablokować bufory pamięci, aby nie były one stronicowane, nawet jeśli oznacza to, że reszta komputera zwalnia do indeksowania, ponieważ to nadal jest lepsze niż dawanie użytkownikowi kolejki. Mogą być też inne ważne powody - mam na myśli to, że chociaż zwykle nie zaleca się blokowania stron w pamięci, nadal istnieją prawidłowe sytuacje i nie sądzę, że zabicie pomysłu pomogłoby tutaj OP.
Aktualizacja: Spójrz na Process Hacker „s
Reduce Working Set
opcji menu.źródło
SetProcessWorkingSetSize
. To jeden sposób. Jeśli oczywiście nie wiesz, co to znaczy, ponieważ nie jesteś programistą, to oczywiście niewiele możesz zrobić. Ale nadal jest to możliwe, a powiedzenie, że jest to niemożliwe, jest nadal niepoprawne, wymaga jedynie większej wiedzy niż PO.Jedynym sposobem, jaki znalazłem, jest wyłączenie pliku strony. Jednak nie jest to idealne rozwiązanie: pojawi się komunikat o błędzie, jeśli zbliżysz się do limitu pamięci RAM lub go przekroczysz, i może nie zapisać poprawnie zrzutów awaryjnych, więc włącz go ponownie, jeśli chcesz rozwiązać problem. Poza tym od miesięcy korzystam z Win7 bez pliku stronicowania.
Moje doświadczenie: miałem ten problem z oprogramowaniem fortepianowym (użycie 1 GB pamięci RAM), które zamieniło się w swap po dłuższym okresie nieużywania. Kilka godzin później gra na klawiszach fortepianu doprowadziłaby do chaotycznego bałaganu, ponieważ zamiana nie zostałaby przeładowana wystarczająco szybko, aby odtworzyć dźwięk. (Następnie położyłbym całą rękę na każdym kluczu, aby wymusić przeładowanie!)
Jeśli masz problem z pamięcią RAM, sugeruję, abyś kupił więcej (np. Od 8 do 12 GB w systemie Windows 7 x64). Dla osób świadomych pamięci RAM posiadanie dużej ilości pamięci RAM jest darem niebios.
Ale wcześniej powinieneś rozważyć zakup dysku SSD i umieszczenie go na nim. Znacznie przyspieszy odzyskiwanie wymiany, a także zapewni wiele innych korzyści systemowych. Pamięć RAM nie zapewnia korzyści, gdy nie jest używana.
źródło
Wykorzystanie pliku strony zależy od wielu czynników. Jeśli korzystasz z wielu programów i nie masz wystarczającej ilości pamięci RAM dla wszystkich z nich jednocześnie, to niektóre z nich (lub wszystkie) mogą zostać zamienione na plik stronicowania.
Jeśli masz 4 GB pamięci RAM i powiedzmy, że około 3 GB jest dostępne, ponieważ karty wideo i inni użytkownicy zasobów blokują części 4 GB, a używasz tylko kilku programów, które nie zajmują dużo pamięci, teoretycznie nie powinien nigdy potrzebować pliku wymiany. Jednak Windows Vista i 7 są wyjątkowo agresywne w zamianie programów na dysk.
Kiedyś miałem ustawienie, które zmniejszało zamienność systemu Windows 7 (zamiana jest terminem linuksowym, ale dotyczy również systemu Windows, a ponieważ istnieje ustawienie rejestru pozwalające oswoić agresywność zamiany systemu Windows, wydaje się, że Microsoft zgadza się niechętnie, choć w studni ukryty sposób), ale nie mogę już tego znaleźć. Szukając tego, znalazłem się tutaj. Najlepszą alternatywą dla tego ustawienia, które znalazłem, jest upewnienie się, że używasz pliku wymiany o stałym rozmiarze (wybieram 4096-4096 w 32-bitowych systemach operacyjnych i 12 GB w 64-bitowych systemach, ponieważ mam 6 GB systemowej pamięci RAM) na dedykowanej partycji. Posiadając zapasowy dysk 200 GB o prędkości 7200 obr./min, umieszczam na nim wszystkie moje partycje wymiany (Windows XP, 7, 7 64-bit i różne Linuxy). Wydaje mi się, że to działa, ale YMMV.
źródło
Warto wspomnieć: gdy system Windows wykryje, że często korzystasz z niektórych aplikacji, funkcja superszybkiego pobierania zapisuje te aplikacje w pamięci, aby szybciej się ładowały. Myślę, że zaufaj oknom, aby zrobić to tutaj.
źródło