W tym wieku, twoje urządzenia przenośne są aktualizowane i stają się coraz lepsze i lepsze. My konsekwentnie otrzymujemy aktualizacje w dziale pamięci (więcej niż faktycznie potrzebujemy). Jeśli czytasz naszą poprzednią funkcję, „Ile RAM jest zbyt dużo RAM?”, będziesz wiedzieć, ile RAM jest rzeczywiście potrzebne do smartphone do pracy bezproblemowo i poza tym, jest po prostu overkill.
Możesz potrzebować aktualizacji, jeśli w dzisiejszym wieku twój telefon jest lagging lub spowolnienie. Ale czy kiedykolwiek zastanawiałeś się, dlaczego, a co ważniejsze, jak to się dzieje? W tej funkcji, będziemy DeCode jak to się dzieje. I wiele więcej. Czytaj dalej!
Dlaczego nasz świat kręci się wokół pamięci RAM?
W sercu systemu operacyjnego Android znajduje się jądro Linux. Za każdym razem, gdy uruchamiasz nową aplikację, tworzysz proces wewnątrz Linuksa. Proces jest teraz odpowiedzialny za wszystkie różne zasoby, które jądro może przydzielić różnym aplikacjom. Czas CPU, procesy wejścia i wyjścia oraz pamięć RAM są uważane za zasoby.
Czas CPU i I/O są w większości uważane za nieskończone zasoby. Jeśli masz zajęty procesor i chcesz uruchomić nowe zadanie, twoje zadanie również otrzyma kawałek tego czasu procesora. Jest pewne, że zadanie zostanie wykonane, ale może być opóźnione z powodu przeciążenia czasu procesora. Podobnie, twoje zadanie może wykonać się nieco szybciej, jeśli CPU jest mniej zajęty.
W przypadku I/O, pobieranie dużego pliku, zapisywanie czegoś w pamięci wewnętrznej lub wykonywanie innych procesów w tym samym czasie może spowolnić ich wykonanie, ale w końcu to nastąpi.
Jednakże, pamięć RAM jest obecna w urządzeniu w stałej ilości. Jest skończona. Jeśli zabraknie ci pamięci RAM, nie ma magii, która uwolni pamięć RAM, jeśli poczekasz trochę dłużej. Dlatego Android i Linux potrzebowały systemu, który pomoże im uporać się z tym ograniczeniem.
Jak działa pamięć RAM w smartfonie?
Kiedy uruchamiasz aplikację na swoim urządzeniu, uruchamiany jest nowy proces, który żąda od jądra Linuxa, że potrzebuje (powiedzmy) „X” ilości pamięci RAM tylko po to, aby załadować aplikację. Po tym, aplikacja może również poprosić o więcej pamięci, aby załadować więcej plików lub pobrać coś z Internetu i jądro Linuksa zapewni niezbędne. Tak właśnie odbywa się podstawowa delegacja pamięci RAM.
Twoje urządzenie posiada pulę dostępnej pamięci, która różni się od wolnej pamięci. Dostępna pamięć to tak naprawdę pamięć dostępna do uruchamiania nowych aplikacji lub przetwarzania innych aplikacji, bez swapowania. W wielozadaniowym systemie operacyjnym, wolna pamięć jest złą rzeczą, ponieważ pamięć siedzi bezczynnie; zawsze może pomóc w jednym lub drugim procesie.
Na przykład, wolna pamięć może być używana do poprawy I / O plików, I / O sieci do buforowania lub może być podana do innych programów, które mogą uczynić tę dodatkową pamięć użyteczną. W tym samym czasie, jest on również oznaczony jako pamięci dostępnej. Stąd w każdej chwili może przestać być używana jako bufor lub buforowanie i może być wykorzystana przez proces.
W urządzeniu z 4GB RAM, część pamięci jest używana przez sterowniki sprzętowe, a część przez Androida. Pozostała dostępna pamięć po ponownym uruchomieniu świeżego systemu będzie wynosić około 1,7 GB. Kiedy aplikacja uruchamia się, urządzenie będzie patrzeć na dostępnej pamięci zapewnić niektóre kawałki do wykorzystania dla procesów.
To rzeczywiście podzielić pamięć na strony, jedna strona około 4 KB. Te strony mogą być delegowane przez system do różnych procesów, w zależności od potrzeb. Wszystkie procesy będą działać dobrze, jeśli jest pamięć w obfitości. Ale kiedy dostępna pamięć zmniejsza się wraz ze wzrostem liczby aplikacji, zaczyna to powodować pewne problemy. W pewnym momencie, nie będzie wystarczająco dużo dostępnej pamięci, aby rozpocząć nowy proces.
Na tym etapie, Linux i Android mają problem. Aby sobie z nim poradzić, mogą albo wykonać swapping, albo zabić aplikację, aby zwolnić pamięć. Koncepcję swapowania znamy z serwerów i komputerów stacjonarnych. Kiedy nie masz wystarczająco dużo pamięci, możesz wziąć część aktywnej pamięci, która jest obecnie w RAM i zapisać ją na dysku twardym. W ten sposób zwalniasz ten blok/stronę pamięci. Później, jeśli ta strona jest ponownie potrzebna, możesz ją odzyskać z dysku twardego. Jednak Android działa trochę inaczej i nie przechowuje pamięci na dysku twardym.
Android używa ZRAM (’Z’ w terminologii Unix jest symbolem skompresowanej pamięci RAM). ZRAM swap może zwiększyć ilość pamięci dostępnej w systemie poprzez kompresję stron pamięci i umieszczenie ich w dynamicznie przydzielanym obszarze swap pamięci. Gdy coś zostanie zapisane w tej skompresowanej pamięci, nie można się do tego dostać i staje się to trochę jak plik ZIP. Jeśli chcesz go użyć, musisz go odkompresować i zapisać z powrotem do pamięci głównej. Ten proces to swapping out i swapping back in. Ten wiecznie kończący się cykl swapowania nazywany jest „thrashingiem”. Android nie ma żadnego problemu z thrashing jako kiedy jest nasycony tj. zabraknie miejsca na swapping, to po prostu zaczyna zabijać procesy.
Wybierze aplikację, której nie używałeś przez jakiś czas z listy i zabija ją. To zwalnia miejsce, że aplikacja była przy użyciu i teraz miejsce jest dostępne dla nowej aplikacji lub istniejącej aplikacji, aby rozwinąć. Wszystkie aplikacje są zaprojektowane w taki sposób, że gdy aplikacja przechodzi w tło, zawsze jest szansa, że może nigdy nie otworzyć ponownie. Tak więc, ich obecny stan jest zapisany.
Jeśli otworzysz aplikację ponownie to przeładowuje. Czasami ten proces nie jest płynny. Na przykład, jeśli grałeś w grę, nie zacznie się od miejsca, w którym skończyłeś, ale może zacząć od tego samego poziomu. Jak dobrze aplikacja radzi sobie z tą sytuacją, zależy od aplikacji i osoby, która ją napisała. Jeśli wymagana jest większa pamięć, wiele procesów może zostać zabitych.
Częste przeładowywanie prowadzi do gorzkiego doświadczenia użytkownika. Właśnie dlatego posiadanie większej ilości pamięci RAM jest preferowane z punktu widzenia użytkownika. Chociaż wszystkie niuanse zamiany i kiedy się zamienia są nieco bardziej skomplikowane. Ale kiedy telefon jest przeciążony, to jest zobowiązany do zabicia niektórych aplikacji, aby utrzymać telefon działa i utrzymać go od zamrażania. Zabijanie jest w zasadzie złem koniecznym, który jest przyjęty przez system Android. Stay tuned dla więcej takich artykułów przychodzących na swój sposób. Miłego czytania!