Darmowy RAM dla każdego – Android technicznie #3

Komentarz

Android to system wielofunkcyjny, dzięki któremu urządzenia mobilne z powodzeniem zastępują komputery. Daje możliwość szybkiego przeglądania Internetu, oglądania filmów, pracy z aplikacjami biurowymi, czy grania. Ba! Umożliwia robienie tego wszystkiego jednocześnie, w tym samym czasie! A jak doskonale wiemy, ten stan rzeczy zawdzięczamy wielozadaniowości (ang. multitasking). Niestety, funkcjonalność ta jest obarczona dużymi potrzebami na zasoby urządzenia i niejednokrotnie spowalnia nasz sprzęt.

Podstawowym wąskim gardłem jest ilość pamięci operacyjnej. Każda uruchomiona aplikacja rezerwuje dla siebie pewną część pamięci RAM, a w razie potrzeby prosi o większą jej ilość. Problemy zaczynają się, gdy chcemy korzystać z wielu programów jednocześnie. Wtedy każdy z nich zabierze pewną ilość pamięci, a system pozostanie bez zasobów! Skutkuje to spowolnionym działaniem, długim czasem reakcji, czy nawet zawieszeniem się systemu.

Ten stan rzeczy jest znany od dawna na komputerach stacjonarnych. Wyobraźmy sobie sytuację, w której komputer wyposażony był w 256 MB pamięci RAM i miał działać płynnie! Co robiono, aby zapewnić oczekiwaną szybkość? Rozszerzano pamięć operacyjną. W tym celu wyznaczano na dysku twardym specjalne miejsce, które stanowiło dosłowne przedłużenie RAMu. Kiedy system uznawał, że dana informacja jest na razie niepotrzebna – przenosił ją na dysk, zaś w momencie zapotrzebowania na nią – zwyczajnie ją odczytywał. Jest to tzw. plik wymiany. Jak wiemy, oprócz powiększania pamięci RAM, miał on swoje wady: były zdecydowanie wolniejszy i zakłócał swobodny dostęp do innych danych na dysku.

 

Zakładka "Zarządzanie pamięcią"

Zakładka “Zarządzanie pamięcią”

 

Standardowa wersja systemu Android nie posiada partycji wymiany, ale daje w nasze ręce rozwiązanie bardzo zbliżone, oznaczane jako zRAM. Oparte jest ono na fakcie, że większość informacji zawartych w pamięci można skompresować, dzięki czemu zajmą one znacznie mniej miejsca, a w ten sposób na tej samej przestrzeni zmieścimy więcej danych. Dlatego też wyznacza się określoną przestrzeń RAMu, w której będą składowane dane uznane przez system za chwilowo niepotrzebne (np. podczas przejścia z gry do przeglądarki internetowej). Zostaną one skompresowane i zapisane. Następnie w momencie zapotrzebowania na nie (powrót do gry) będą one odczytane, zdekompresowane i umieszczone w normalnej przestrzeni operacyjnej.

Trudność pojawia się w słowach: kompresja i dekompresja. Czynności te wymagają pracy procesora i zajmują sporo czasu. Dlatego też przyczyniają się do spowolnienia systemu i zwiększenia zapotrzebowania na energię elektryczną. Podsumujmy teraz krótko wszystkie rozważania na poniższym wykresie.

Zalety i wady zRAM

Zalety i wady zRAM

Warto jeszcze wspomnieć, że informacje można kompresować z różną intensywnością tak, jak obrazy JPG mogą być lepszej i gorszej jakości, choć w przypadku zRAM oryginalna informacja zostaje nietknięta, a wydłuża się proces kompresji i dekompresji. Dlatego też stopień kompresji ma wpływ na „dodatkową” przestrzeń pamięci, jak i na wzmożoną aktywność procesora.

Okazuje się, że nie ma nic za darmo. Można uzyskać więcej pamięci operacyjnej kosztem spowolnienia systemu i zmniejszonej żywotności baterii. Czy warto? Cóż, zależy to od sprzętu, którym dysponujemy. W starszych telefonach korzyści przerosną wady, a telefon zauważalnie przyspieszy. Natomiast w nowych konstrukcjach wyposażonych w ogromną ilość pamięci RAM, zabieg ten będzie praktycznie zbędny. Pamiętajmy jeszcze, że część producentów domyślnie włącza działanie zRAMu. Podobna sytuacja jest w przypadku wszelkich ROMów tworzonych przez miłośników Androida. Dlatego warto się zainteresować zakładką „Zarządzanie pamięcią”, aby móc świadomie dokonywać zmian w systemie.

Marcin Ziąbek

Marcin Ziąbek
Sprawdź koniecznie

Podobne Artykuły

  • “W starszych telefonach korzyści przerosną wady, a telefon zauważalnie przyspieszy”

    Głupota… Telefon zacznie pobierać nieporównywalnie więcej energii a kompresja/dekompresja jaka by nie była, spowolni telefon. W starszych urządzeniach z procesorami do ARMV7 (w przypadku mojego doświadczenia) z masą aplikacji, pomagały tylko dwa programy:
    -Greenify do hibernacji procesów w tle.

    -Lin2SD przenoszący dane aplikacji do SWAP-u.

    Pomijam kwestię, że w chińskich telefonach (oczywiście wciąż mówię o starszych modelach) procesy potrafiły mylić się w obliczeniach. Może i skompresuje kilka MB danych ale dekompresja spowoduje restart urządzenia. Nie bez przyczyny pojawia się w opcji “wydajność” ostrzeżenie o funkcjach eksperymentalnych tam zawartych.

    zRam powinien być, używany do telefonów wielordzeniowych. Gdzie, system rozdzieli proces kompresji/dekompresji części pamięci mający większy priorytet do osobnego rdzenia a całą resztę procesów do innego.

    Ale najważniejsze :). Funkcja ta pokaże swoje oblicze tylko w przypadku gdy użytkownik “aktywnie” korzysta z wielu aplikacji w tle.

    • Marcin

      Dziękuję za konstruktywny komentarz. Muszę zgodzić się z Pana wypowiedzią, jednak chciałbym ją dodatkowo uzupełnić.

      Artykuł został napisany w oparciu o moje doświadczenia związane z obsługą zRAM na telefonie LG Optimus 2x. Uważam, że smartfon ten można spokojnie zaliczyć do “starszych modeli”, gdyż pojawił się na rynku prawie 3,5 roku temu.

      Ma Pan całkowitą rację, zRAM zwiększa zużycie energii elektrycznej, co negatywnie wpływa na czas pracy telefonu. Należy jednak zauważyć, że wspomaga wielozadaniowość i przyspiesza część funkcji (programy nie są uruchamiane ponownie, lecz dekompresowane). W ten sposób jestem w stanie zrobić znacznie więcej w danej jednostce czasu.

      Analogiczna sytuacja wystąpiłaby, gdyby na stałe obniżyć taktowanie procesora do wartości minimalnej. Owszem, procesor zacznie pobierać śladowe ilości energii i na tym zaoszczędzimy, jednak jego czas reakcji znacznie wzrośnie. I teraz przykładowo: chcąc zmienić stację w radio internetowym będę musiał czekać znacznie dłużej na reakcję telefonu, a prąd pobrany przez wyświetlacz przerośnie oszczędności związane z działaniem procesora.

      Obecnie bardzo dużo osób “aktywnie” korzysta z wielu aplikacji w tle: uruchomione usługi internetu, Facebooka, radio internetowe/odtwarzacz muzyki i aplikacja, z której korzystamy, np. przeglądarka internetowa. Wielozadaniowość jest w pełni wykorzystywana.

      zRAM faktycznie wskazany jest dla procesorów wielordzeniowych, jednak te były już obecne w “starszych” modelach. Myślę, że spokojnie możemy tak nazwać nawet telefony dwuletnie – wszakże postęp technologiczny jest ogromny. A to właśnie wtedy telefony cierpiały na brak RAMu. Co z tego, że posiadam telefon dwurdzeniowy, wydajną grafikę, jak mam do dyspozycji jedynie około 380 MB pamięci operacyjnej? (producent podaje 512, jednak około 130 jest rezerwowane dla karty graficznej).

      No i najważniejsze: bardzo wiele zależy od systemu, na którym pracujemy. W niektórych zaimplementowano różne funkcje lepiej, a u innych gorzej. I tutaj trzeba wziąć pod uwagę, że najlepsze jakościowo ROMy są tworzone dla flagowców, inne modele bywają traktowane po macoszemu… Identycznie sytuacja wygląda ze stylem użytkowania smartfonu.

      • Aktywne procesy nie są kompresowane :). Jeżeli opuścisz aplikację np. Operę Mini to, tutaj przyznaję rację, że po chwili jej dane zawarte w RAM-ie zostaną skompresowane. Kwestia tylko czy całość czy część… Tego sam nawet nie wiem.

        Jednak, aplikacja np. Facebook to uniemożliwia, przez ciągłe powiązanie z tabelka powiadomień i ciągłe wywołania do odświeżenia powiadomień.

        I teraz, przynajmniej dla mnie bardzo ważna sprawa :). Czy jeśli oglądam film w MX Player, to gdy wyjdę z aplikacji podczas oglądania, to czy bufor filmu także zostanie skompresowany? To już jest plik multimedialny, a nie czysty kod maszynowy w pamięci RAM.

        • Marcin

          Oczywiście, aktywne procesy nie są kompresowane. Spowodowałoby to znaczne obniżenie wydajności telefonu – czyli przyniosło by negatywny i bardzo odczuwalny skutek.

          Ale na te procesy potrzeba miejsca, o którego nie dbają wszyscy ;) Wielokrotnie spotkałem się, jak na urządzeniach moich rodziców było uruchomionych nawet 20 aplikacji – bierze się to z faktu, że większość użytkowników uważa, że przechodząc do menu głównego (np. klawiszem “domek”) wyłączają daną aplikację/grę.

          Biorąc pod uwagę, że zRAM w teorii kompresuje instancje aplikacji, do których również należą jej dane – tak, bufor również zostanie skompresowany. Istnieje również możliwość, że aplikacja samodzielnie czyści bufor w momencie minimalizacji, aby po wznowieniu działania wczytać go ponownie.

          Wniosek z naszych rozważań jest jeden: wszystko zależy od oprogramowania, sprzętu i stylu pracy użytkownika – czasem zRAM potrafi poprawić naszą sytuację, czasem ją pogarsza. Jest to więc opcja, którą należy przetestować i samodzielnie podjąć decyzję w oparciu o uzyskane wyniki.

          Właśnie dlatego istnieje ta seria artykułów, by uświadomić naszych Czytelników, jak to wszystko działa i jak należy dostosować zaawansowane opcje. Jest to szczególnie konieczne, gdy uzyskanie uprawnień root lub instalacja ROMu nie wymaga już szczególnie dużo wiedzy, wystarczy odpowiedni tutorial ;D