Co to jest wirtualna pamięć RAM w Androidzie i czy powinno Cię to obchodzić?
Różne / / March 16, 2022
Oprócz ogromne megapiksele aparatu oraz wyświetlacze o wysokiej częstotliwości odświeżania, największym trendem w świecie smartfonów wydaje się być wirtualna pamięć RAM. Niektórzy nazywają to rozszerzeniem dynamicznej pamięci RAM, podczas gdy inni nazywają to rozszerzoną pamięcią RAM. Bez względu na to, jak się nazywa, pomysł pozostaje ten sam. Zezwól użytkownikom na wykorzystanie części ich pamięci jako pamięci RAM, aby pomóc w wielozadaniowości.
W tym przewodniku omówimy, jak działa zarządzanie pamięcią w Androidzie i czym różni się od niego idea wirtualnej pamięci RAM. Postaramy się zastanowić, czy wirtualna pamięć RAM jest wymagana w systemie Android, czy nie. Więc przejdźmy do tego.
Jak działa zarządzanie pamięcią w systemie Android
Po pierwsze, ważne jest, aby zrozumieć, w jaki sposób Android zarządza twoją pamięcią. W systemie Android istnieją 3 rodzaje pamięci. Najpierw jest twoja pamięć RAM, potem masz zRAM, a na końcu pamięć. RAM to podstawowy moduł pamięci, w którym działają wszystkie aplikacje. Następnie masz wbudowaną pamięć masową, UFS lub eMMC na urządzeniach budżetowych. Wreszcie mamy zRAM. Zasadniczo zRAM jest partycją wewnątrz pamięci RAM.
Ideą zRAM jest to, że dane o niskim priorytecie w pamięci RAM są kompresowane i przechowywane w pamięci zRAM. Ponieważ pamięć RAM jest każdego dnia szybsza niż zwykła pamięć masowa, posiadanie skompresowanych danych w pamięci zRAM, która jest częścią pamięci RAM, jest nadal będzie szybszy niż dostęp do niego z pamięci, nawet jeśli policzysz czasy kompresji i dekompresji.
Teraz, gdy ustaliliśmy 3 różne typy pamięci dostępne dla Androida, zrozummy, jak system operacyjny radzi sobie z tym wszystkim. Więc Android korzysta z technik stronicowania. Jak to działa, pamięć RAM jest podzielona na strony, gdzie każda strona ma zwykle 4 KB. Niezależnie od tego, czy strona jest wolna, czy aktywnie używana, łączą się, aby pokazać odpowiednio używaną pamięć RAM i nieużywaną pamięć RAM. Następnie zadaniem jądra jest przekształcenie zużytej pamięci w wolną pamięć. Czyni to poprzez przeniesienie danych z tych używanych stron do Twojej pamięci.
Co to jest stronicowanie i jak to działa
Aby zrozumieć, jak to działa, poznajmy rodzaje stron. Strony można podzielić na dwa typy — strony czyste i strony brudne. Czyste strony mają niezmodyfikowaną kopię zapisaną w przestrzeni pamięci. Tymczasem brudne strony mają zmodyfikowaną kopię danych przechowywanych w pamięci. Czym jest to zmodyfikowane i niezmodyfikowane? Nazwijmy to dynamicznym wykorzystaniem Twojej pamięci.
Niezmodyfikowane kopie to dane statyczne, natomiast zmodyfikowane kopie to dynamiczne zmiany danych co sekundę. Android może w razie potrzeby wyczyścić czyste strony, ponieważ nie uzyskują one dynamicznego dostępu do zasobów. Pomaga to zwolnić pamięć RAM i udostępnić jej więcej. Może to zabrzmieć trochę zbyt technicznie, więc uprośćmy zrozumienie korzystania z rzeczywistych aplikacji.
Załóżmy, że otwierasz Twittera, przeglądasz swój kanał, a następnie przełączasz się na coś innego. Twitter nadal jest w twojej pamięci RAM. Ale jeśli nie otworzysz go przez jakiś czas, jego priorytet się zmniejszy. Później, jeśli uruchomisz coś nowego, Android będzie musiał zwolnić pamięć, z której korzysta Twitter. To, co robi, polega na tym, że przenosi swoje wartości i dane do pamięci i zapewnia wolną przestrzeń. Dlatego po ponownym uruchomieniu Twittera najpierw wyświetli się oś czasu, na której był hibernowany, a następnie odświeży. To samo dotyczy Facebooka, Reddita lub podobnych aplikacji, takich jak Kalkulator lub Notatki. Te aplikacje używają czystych stron, ponieważ kopia ich danych jest statycznie zapisywana w pamięci.
Teraz, w przypadku brudnych stron, rozważ Spotify lub dowolny odtwarzacz muzyki. Uruchamiasz muzykę w odtwarzaczu, a następnie utrzymujesz ją w tle bez otwierania aplikacji. Jednak system nie może go zamknąć, ponieważ dynamicznie wykorzystuje twoją pamięć. W rezultacie Android kompresuje aplikację i przenosi ją do ZRAM, gdy wymagana jest większa ilość wolnej pamięci RAM.
Co to jest wirtualna pamięć RAM
Teraz, gdy wiesz, jak Android zarządza pamięcią, musisz się zastanawiać – gdzie pojawia się funkcja wirtualnej pamięci RAM? Pamiętasz, jak powiedzieliśmy, że zRAM jest również częścią pamięci RAM? Sposób działania wirtualnej pamięci RAM polega na tym, że tworzy partycję wymiany w przestrzeni dyskowej i używa jej jako dodatkowej pamięci ZRAM.
Ponieważ pamięć zRAM jest przechowywana tylko w pamięci RAM, istnieje limit liczby stron, które można w nim skompresować i przechowywać. Dzięki partycji wymiany możesz wykorzystać przestrzeń dyskową jako dodatkową pamięć ZRAM do kompresji i przesuwania aplikacji, jednocześnie udostępniając miejsce w rzeczywistej pamięci RAM.
Czy ta funkcja jest nowa?
Czy to wszystko jest nowe? No nie bardzo. Linux używa partycji wymiany od samego początku. W przypadku systemu Android użytkownicy niestandardowych jąder używali kart SD do tworzenia dodatkowych partycji wymiany w celu usprawnienia zarządzania pamięcią.
W związku z tym producenci marek udostępniają tę samą funkcję, która jest wypiekana w ich skórkach Androida. Jednak nasuwa się pytanie – jeśli funkcja jest tak pomocna, dlaczego nie była częścią kodu źródłowego Androida?
Czy wirtualna pamięć RAM jest dobra czy zła?
Odpowiedź tkwi w bardzo podstawowym działaniu samej wirtualnej pamięci RAM. Chociaż ta funkcja umożliwia uruchamianie większej liczby aplikacji na urządzeniu, kompresując aplikacje zahibernowane i przenosząc je do pamięci, wyrządza więcej szkody niż pożytku. Ponieważ partycje wymiany zasadniczo przechowują aktywne aplikacje, istnieje większe poczucie czytania i pisania.
Działa to dobrze w tradycyjnej pamięci masowej, ale pamięć flash ma ograniczoną liczbę odczytów i zapisów. Używając SWAP lub wirtualnej pamięci RAM, technicznie skracasz żywotność pamięci urządzenia.
Jest to również dobrze podkreślone Strona programisty Androida. „W Androidzie pamięć nie jest wykorzystywana do przestrzeni wymiany, tak jak w innych implementacjach Linuksa, ponieważ częste pisanie może powodują zużycie tej pamięci i skracają żywotność nośnika pamięci.” Innym tego przykładem jest nowy Apple M1 MacBooki. Maszyny te używają partycji wymiany na dyskach SSD Apple, na co użytkownicy narzekają dość często.
Czy wirtualna pamięć RAM ma znaczenie i czy należy jej używać?
Zasadniczo wszystko zależy od tego, jak zdefiniujesz wielozadaniowość. Jeśli żongluje tylko dwiema lub trzema aktywnymi aplikacjami, to z pewnością pomaga w tym wirtualna pamięć RAM. Ale jeśli będziesz przełączać się między 5-6 mocno aktywnymi aplikacjami, wirtualna pamięć RAM nic nie zrobi, ponieważ będzie przesuwać aplikacje.
Zasadniczo funkcja wirtualnej pamięci RAM pozwala na dostęp do większej ilości pamięci RAM do uruchamiania aplikacji. Jednak odbywa się to kosztem twojego przechowywania. Jeśli zamierzasz korzystać z urządzenia dłużej niż dwa lata, uważamy, że korzystanie z wirtualnej pamięci RAM może nie mieć większego sensu.