Login lub e-mail Hasło   

Dlaczego opłaca się używać aplikacji zajmujących się zarządzaniem pamięcią RAM

Jak wiemy dane z pamięci RAM odczytują się kilkukrotnie szybciej niż z dysku (pliku wymiany). Gdy otwieramy nowy program, system operacyjny stara się znaleźć dla niego wolne mie...
Wyświetlenia: 10.704 Zamieszczono 13/05/2006
Jak wiemy dane z pamięci RAM odczytują się kilkukrotnie szybciej niż z dysku (pliku wymiany). Gdy otwieramy nowy program, system operacyjny stara się znaleźć dla niego wolne miejsce w pamięci szybkiego dostępu (czyli w RAM'ie), a gdy go tam nie znajdzie, umieszcza aplikacje w pliku wymiany. Zasada działania programu do "czyszczenia" (ew. optymalizacji lub defragmentacji) RAM'u jest bardzo prosta. W skrócie można opisać ją w trzech etapach:
  1. Etap I - program kopiuje fragment pamięci RAM o wybranej wielkości do pliku stronicowania znajdującego się na dysku
  2. Etap II - program czyści (zeruje) skopiowany fragment w pamięci RAM
  3. Etap III - na tak przygotowany fragment pamięci RAM system kopiuje tylko potrzebne mu w tej chwili dane (np. biblioteki, fragmenty plików wykonywalnych .exe), nieużywane pozostawiając w pliku stronicowania.
Więc czy na pewno warto używać tego typu aplikacji i dlaczego?

Moja odpowiedź brzmi tak. Spotkałem się w pewnej książce dot. optymalizacji pracy z Windows XP z opinią ,że Microsoft zaopatrzył swój produkt w wydajny system zarządzania pamięcią, tak że to co jest mu potrzebne trzyma w pamięci, a to czego nie używa usuwa z niej. Owszem, jest to w pewnym sensie prawda, ale nie cała. Osoba pisząca tą książkę nie wzięła pod uwagę kilku czynników. W mojej argumentacji mogą paść niezrozumiałe dla części osób pojęcia, jednak postaram się wytłumaczyć to dosyć jasno.
Otóż system podczas uruchamiania jakiegoś programu (pliki .exe), kopiuje całą jego zawartość do pamięci RAM. W całym tym pliku znajduje się jego część, której nigdy nie będziemy używać (są to np. rzadko otwierane okna dialogowe - m.in.. zaawansowanej konfiguracji - lub bitmapy). Te dane zalegają w pamięci RAM, a przecież równie dobrze mogłyby zalegać w pliku stronicowania na naszym dysku (zwiększenie rozmiaru pliku stronicowania nie kosztuje przecież tyle co dokupienie nowej kości RAM).
Drugi mój argument przemawiający za używaniem narzędzi tego typu to fragmentacja pamięci RAM. Programy podczas swojej normalnej pracy rezerwują sobie często jakiś kawałek pamięci (często są to pokaźne rozmiary kilku MB). Ponieważ system musi gdzieś to wszystko upchnąć, często dane są porozrzucane (nie są ułożone po kolei), i ich odczyt trwa dłużej. Natomiast gdy system po "czyszczeniu" RAM'u przez Fast Ram Cleaner'a kopiuje tylko potrzebne mu dane z pliku wymiany, kopiuje je do pamięci po kolei.

Czy wszystkim na pewno to się przyda?

Nie, programów zajmujących się optymalizacją nie ma sensu używać gdy mamy komputer z dużą ilością RAM'u, i gdy często restartujemy naszą "maszynę". Jednak gdy sprzęt pracuje non-stop cały dzień, takie czyszczenie jest dla niego jak "ożywczy prysznic". Pozwala usunąć wszelkie śmieci z pamięci i ruszyć komputerowi do pracy z wolnym miejscem w pamięci RAM dla nowych danych. Naszej pamięci szczególnie szkodzą źle (choćby w pośpiechu) napisane aplikacje, które "nie sprzątają" po sobie. Czasami też programy świadomie niepotrzebnie zajmują zasoby naszego komputera. Przykładem tego, może być pakiet Office, który przy starcie systemu operacyjnego ładuje do pamięci swoje biblioteki, aby potem jego uruchamianie trwało krócej. Jeśli jednak rzadko korzystamy, pamięć jest marnotrawiona.

Słowniczek

Tutaj przytoczę pojęcia, które pomogą w zrozumieniu treści artykułu (jeżeli dalej nie rozumiesz jakiegoś wyrazu poszukaj w Googlach):

Pamięć RAM - pamięć, która może być odczytywana lub zapisywana przez komputer lub inne urządzenia. Informacje przechowywane w pamięci RAM są tracone po wyłączeniu komputera.

Pamięć Wirtualna - tymczasowy magazyn używany przez komputer do uruchamiania programów, które potrzebują pamięci większej niż pamięć RAM komputera. Na przykład programy mogą mieć dostęp do 4 gigabajtów pamięci wirtualnej na dysku twardym komputera, nawet jeżeli komputer jest wyposażony tylko w 32 megabajty pamięci RAM. Dane programu, które nie mogą być umieszczone w danej chwili w pamięci komputera, są zapisywane w plikach stronicowania.

Plik Stronnicowania (wymiany, swap) - plik ukryty na dysku twardym (może się nazywać np. pagefile.sys), używany przez system Windows do przechowywania części plików programów i danych, które są zbyt duże i nie mogą być umieszczone w całości w pamięci. Plik stronicowania i pamięć fizyczna (lub pamięć RAM) tworzą pamięć wirtualną. System Windows przenosi dane z pliku stronicowania do pamięci zgodnie z potrzebami oraz z pamięci do pliku stronicowania, aby zwolnić miejsce dla nowych danych. Plik stronicowania jest również nazywany plikiem wymiany.

Podobne artykuły


10
komentarze: 9 | wyświetlenia: 1918
108
komentarze: 32 | wyświetlenia: 55751
53
komentarze: 55 | wyświetlenia: 30249
53
komentarze: 68 | wyświetlenia: 29238
49
komentarze: 27 | wyświetlenia: 60737
48
komentarze: 18 | wyświetlenia: 62664
38
komentarze: 51 | wyświetlenia: 20826
36
komentarze: 29 | wyświetlenia: 26167
35
komentarze: 9 | wyświetlenia: 26131
34
komentarze: 36 | wyświetlenia: 19433
33
komentarze: 22 | wyświetlenia: 24998
33
komentarze: 76 | wyświetlenia: 11012
 
Autor
Artykuł



  toszcze  (www),  14/07/2006

Tak naprawdę 99% windowsowych aplikacji "oczyszczających" pamięć działa w taki sposób, że wypełnia pozostałą wolną pamięć (zarówno fizyczną, jak i wirtualną) "śmieciami", co powoduje uaktywnienie systemowego "odśmiecacza". Tyle.

  oldml,  01/02/2008

To warto wiedzieć.

  rosly,  24/07/2008

Pozwolę sobie skomentować ten artykuł:

"Otóż system podczas uruchamiania jakiegoś programu (pliki .exe), kopiuje całą jego zawartość do pamięci RAM" - nie jest to prawda. Windows mapuje części pliku ELF do pamięci wirtualnej, to czy konkretna strona pliku znajdzie się w danej chwili w RAM zależy od tego czy będzie do niej odwołanie. Generalnie strony pamięci procesu nie znajdują się tylko

...  wyświetl więcej

Artykuł pisałem dość dawno (chyba nawet ok. 2004). Oczywiście zgadzam się z tym co piszesz.

Weź jednak też pod uwagę, że w artykule zastosowałem kilka uproszczeń (Twój opis jest bardzo dokładny, jednak przez to zawiły).

Niemniej wszystkim którzy chcą dowiedzieć się "jak to działa" polecam go przeczytać.

  ,  05/12/2008

Edit: Ups, sorry, pezycisnelo mi się przypadkiem i komentarz się dodał.

Teoretycznie RAM nie używany w danej chwili przez żaden proces powinien być przez system używany do tworzenia buforów pamięci masowych, co spowoduje znaczne przyspieszenie wszystkich operacji I/O. Usprawni to pracę systemu znacznie bardziej niż duża ilość nie używanego DO NICZEGO RAM-u. Opisane tutaj porady moim zdaniem dobre były w czasach kiedy królował (na biurkach) Windows 98.

Również pozwolę sobie skomentować:

"Drugi mój argument przemawiający za używaniem narzędzi tego typu to fragmentacja pamięci RAM."
Fragmentacja pamięci nie ma znaczenia, to nie jest dysk twardy, gdzie przesunięcie głowicy jest kosztowne. Znaczenie może ewentualnie mieć fragmentacja przestrzeni adresowej, która potencjalnie może uniemożliwić zaalokowanie dużego obszaru pamięci, ale n

...  wyświetl więcej

  buri,  13/03/2009

Bawienie się czymś takim miało kiedyś sens, ale teraz?
Patrząc na optymalizacje pamięci w Windows 7 to nie ma to najmniejszego sensu. Już Vista umiała dobrze nią zarządzać, tylko ludzie nie wiedzieli ocb w tym i krzyczeli ile to ona ram zjada.

Kolejny argument przeciw to ilość pamięci w obecnych komputerach 2GB to już podstawa i minimum, które wystarcza w zupełności.
Ładowani

...  wyświetl więcej



Dodaj swoją opinię
W trosce o jakość komentarzy wymagamy od użytkowników, aby zalogowali się przed dodaniem komentarza. Jeżeli nie posiadasz jeszcze swojego konta, zarejestruj się. To tylko chwila, a uzyskasz dostęp do dodatkowych możliwości!
 

© 2005-2017 grupa EIOBA. Wrocław, Polska