Nie marnuj RAM-u!

Twój komputer będzie szybszy!”, “Uwolnimy RAM!”, “Zdefragmentujemy Twoją pamięć!”, “Uchronimy przed kłopotami!” I tak dalej, i tym podobne… Prawda, że brzmi to znajomo? Chyba każdy z nas zetknął się chociaż raz z aplikacjami, które oferują tzw. uwolnienie pamięci. Sęk w tym, że programy te w najlepszym razie nie robią niczego pożytecznego, a w najgorszym – zmniejszają wydajność naszego komputera.

Jak to działa?

Żeby się przekonać o szkodliwości “uwalniaczy”, potrzebna jest pewna dawka informacji na temat sposobu działania mechanizmów zarządzania pamięcią w systemach Windows. Nie jest to jakaś wiedza tajemna – już podstawowe dane w połączeniu ze szczyptą zdrowego rozsądku wystarczą, byśmy usunęli omawiane programy z dysków.

Jak wiemy, współczesne systemy operacyjne dysponują mechanizmami pamięci wirtualnej. Służy ona – ogólnie mówiąc – do zwiększania ilości pamięci dostępnej dla programów. Pamięć wirtualna realizowana jest za pomocą tzw. pliku wymiany. Znajduje się on oczywiście na dysku twardym i jest to pierwsza ważna informacja, którą musimy brać pod uwagę. Przypomnijmy zupełną oczywistość: czas dostępu do pamięci RAM jest wielokrotnie krótszy niż do najszybszych nawet “twardzieli”.

Spójrzmy teraz, jak działa menedżer pamięci Windows (jest to mechanizm dość skomplikowany, dlatego z braku miejsca przedstawiam go w mocno uproszczonej formie). Dzięki pamięci wirtualnej dowolny program może skorzystać ze znacznie większej ilości pamięci niż dostępna fizyczna (w 32-bitowych systemach jest to teoretycznie 4 GB, ale ponieważ OS rezerwuje dla siebie połowę, maksymalną wartością jest 2 GB, co oczywiście zależy także od ilości pamięci fizycznej i miejsca na dysku przeznaczonego na pliki wymiany).

Każdemu programowi przydzielana jest jego własna przestrzeń adresowa, składająca się przede wszystkim z fragmentu pamięci fizycznej. Do tego może także dochodzić pewna ilość pamięci wirtualnej (w praktyce jest tak zawsze). Jeśli zapotrzebowanie jakiegoś programu na pamięć wzrasta, menedżer pamięci przydziela mu ją, zmniejszając obszar wolnej pamięci, później zaś “zabierając” ją innym programom. Zajęte przez nie wcześniej fragmenty pamięci odsyła do pamięci wirtualnej, czyli… na dysk.

Rozpychacze

Aplikacja do “uwalniania” pamięci sztucznie tworzy zapotrzebowanie na dużą ilość RAM-u. Systemowy menedżer pamięci, reagując na to działanie, zmniejsza ilość dostępnej pamięci – i dla pozostałych programów, i dla systemu. Nasz “optymalizator” za chwilę przestaje już żądać ogromnych ilości RAM-u, wobec czego obszar pamięci oznaczonej jako “dostępna” znacznie się zwiększa. Program wykonał swoje zadanie! Nie obchodzi go więc już, że w rezultacie większość pamięci, przydzielona wcześniej dla systemu i pozostałych programów, znalazła się na dysku, skąd za chwilę będzie mozolnie odczytywana…

Widać więc, że w normalnej pracy korzystanie z takich aplikacji to absurd. Trzeba jednak wiedzieć, że zwiększenie obszaru wolnej pamięci ma sens przed uruchomieniem programu o wyjątkowo dużym zapotrzebowaniu na RAM. Teoretycznie wszystko jest w porządku, ale… Zadanie wygospodarowania mnóstwa pamięci dla takiej aplikacji i tak wykona systemowy menedżer pamięci, a będzie to trwało tyle samo, co działanie “zwalniacza”. Zysk na wydajności lub oszczędzonym czasie jest więc żaden. Podobnie jest z tzw. defragmentacją pamięci: chodzi o dostępność położonych obok siebie bloków pamięci, co w zasadzie powinno zwiększać wydajność aplikacji. No właśnie: “powinno”. Rzecz jednak w tym, że systemowy menedżer pamięci maskuje fizyczny układ bloków pamięci – defragmentatory nie wiedzą zatem, które bloki położone są obok siebie, nie mogą więc tego wykorzystać. Ostatnia już bzdura to odzyskiwanie pamięci zajmowanej w nieskończoność przez źle napisane programy. Nie ma innej możliwości jej odzyskania poza “zabiciem” takiej aplikacji.

Czy już usunęli Państwo wszystkie “uwalniacze”? Chyba najwyższy czas, by to zrobić. Proszę się przez chwilę zastanowić: po co nam właściwie wolna pamięć? Skoro jest nieużywana, to po prostu się marnuje. Jeżeli jednak będzie nam za chwilę potrzebna, zwolni ją systemowy menedżer pamięci. Gdyby dało się opracować lepsze mechanizmy zarządzania pamięcią, setki inżynierów pracujących nad systemami operacyjnymi chyba by już je opracowały. Naprawdę mamy wierzyć, że producenci przedstawionych w niniejszym tekście programików wymyślili coś lepszego?

Więcej:bezcatnews