W jaki sposób partycja / plik wymiany wpłynie na system?

20

Niektórzy znajomi powiedzieli mi, że ich telefony z Androidem mają bardzo mało (<100 MB) dostępnej pamięci dla zwykłych aplikacji, ponieważ system operacyjny i niektóre nieprzebrane usługi zajmują większość pamięci RAM. Na przykład jeden telefon z 512 MB pokazuje tylko 90 MB dostępnej pamięci, więc tylko 2-3 aplikacje mogą działać jednocześnie.

Zastanawiam się, czy utworzenie partycji / pliku wymiany pomoże, ale widziałem mieszane opinie w Internecie i nie jestem pewien, co robić. Oto moje pytania:

(1) Czy będzie wiele niezbyt często używanych stron pamięci do wymiany, szczególnie w systemie operacyjnym i usługach, których nie da się sprzedać?

(2) W jaki sposób zamiana małych stron pamięci wpłynie na żywotność pamięci flash? Czy lampa błyskowa (lub karta SD?) Automatycznie niweluje zużycie?

(3) Czy zamiana naprawdę poprawi wydajność podczas uruchamiania wielu aplikacji? Zakładam, że jeśli odpowiedź na (1) jest twierdząca, tak będzie.

(4) Czy pisanie w celu flashowania będzie zbyt wolne, a tym samym zaszkodzi reakcji w przypadku zamiany?

(5) Czy to prawda, że ​​Android ukrywa mechanizm wymiany z jądra Linuksa, więc dopóki istnieje partycja / plik wymiany, będzie dokonywał wymiany bez dodatkowej konfiguracji?

Dziękuje za przeczytanie.

zimozielony
źródło

Odpowiedzi:

8

Nie sądzę, że zamiana na Androida przyniesie wiele korzyści, ponieważ cykl życia aplikacji na Androida jest znacznie bardziej zaawansowaną formą wymiany.

(1) Czy będzie wiele niezbyt często używanych stron pamięci do wymiany, szczególnie w systemie operacyjnym i usługach, których nie da się sprzedać?

Nie można zamienić jądra systemu operacyjnego, nawet w systemach Linux i Linux, które już zabijają usługi, gdy potrzebuje więcej pamięci RAM. Jeśli sprzedawca Twojego urządzenia utrzymuje, że musisz mieć bezużyteczne usługi przez cały czas, zrootuj urządzenie.

(2) W jaki sposób zamiana małych stron pamięci wpłynie na żywotność pamięci flash? Czy lampa błyskowa (lub karta SD?) Automatycznie niweluje zużycie?

Nawet jeśli karta SD wyrówna zużycie, zamiana będzie bardzo boleć.

(3) Czy zamiana naprawdę poprawi wydajność podczas uruchamiania wielu aplikacji? Zakładam, że jeśli odpowiedź na (1) jest twierdząca, tak będzie.

Nie w kontekście Androida. W przeciwieństwie do tradycyjnego systemu operacyjnego, który będzie próbował łączyć procesy zgodnie z twoją prośbą, Android wymusi zabicie starszych, nieużywanych procesów i odzyska pamięć; to zabijanie jest szybkie, ponieważ aplikacje będą już zapisywać swój stan po zmianie zadania.

(4) Czy pisanie w celu flashowania będzie zbyt wolne, a tym samym zaszkodzi reakcji w przypadku zamiany?

Prawdopodobnie nie. Potrzebne będą do tego punkty odniesienia.

(5) Czy to prawda, że ​​Android ukrywa mechanizm wymiany z jądra Linuksa, więc dopóki istnieje partycja / plik wymiany, będzie dokonywał wymiany bez dodatkowej konfiguracji?

Nie wiem, czy Android zachowuje mechanizm wymiany, ale nawet jeśli tak (lub jeśli skompilujesz własne jądro), nadal będziesz potrzebować niektórych konfiguracji. Zwykle ma po prostu fstabplik wskazujący plik wymiany i działa swapon -a.

W rzeczywistości mam powody, dla których zamiana może faktycznie zaszkodzić wydajności: uniemożliwia poprawne działanie cyklu życia aplikacji, systemu zarządzania pamięcią Androida.

Lie Ryan
źródło
Dziękuję za odpowiedź. Nadal jednak mam pytania. Na urządzeniu Samsung Fascinate 10 nieprzenikalnych usług zajmuje około 110 milionów pamięci. Istnieją 22 inne dostępne usługi, ale „Uruchamianie aplikacji” nie pokazuje uruchomionej aplikacji. To telefon mojej przyjaciółki i nie wiedziałem wcześniej, co dokładnie zrobiła, ale wydaje się, że jest całkiem możliwe, że wiele usług / aplikacji może działać jednocześnie. Nie sądzę, aby wszystkie te usługi / aplikacje działające w tle korzystały ze wszystkich stron, których wymagały na początku. Poza tym, zapisz stan aplikacji + przeładuj i uruchom ponownie aplikację + stan przywracania byłby również powolny.
evergreen
Innym sposobem myślenia o tym problemie jest założenie, że żywotność pamięci flash nie stanowi problemu, czy system Android powinien wymieniać? Jeśli nie, to jaka jest kluczowa różnica między aplikacjami na Androida a aplikacjami komputerowymi, która sprawia, że ​​zamiana nie jest przydatna na Androidzie? Nie sądzę, że cykl życia Androida działa w aplikacjach komputerowych / serwerowych.
evergreen
@evergreen: Stan aplikacji jest zapisywany, gdy aplikacja przejdzie w tło (np. gdy użytkownik naciśnie przycisk home, aby przełączyć zadanie). Później, gdy jakaś inna aplikacja potrzebuje pamięci, starsze aplikacje lub usługi działające w tle zostaną wymuszone (FK nie zajmuje praktycznie czasu). Oznacza to, że zabijanie zadań jest natychmiastowe, ponieważ stan aplikacji jest już dawno zapisany. Po ponownym załadowaniu aplikacji, która jest już w pamięci, uzyskasz najszybszy czas przeładowania; ale jeśli aplikacja jest już rozładowana, musi ona wykonać pełne przeładowanie (co jest identyczne z wymianą)
Lie Ryan,
@evergreen: jeśli korzystasz z zabójcy zadań, zmusisz aplikacje do rozładowania i zawsze będziesz musiał wykonać pełne przeładowanie zamiast szybkiego przeładowania, gdy aplikacja pozostanie w pamięci. Jeśli używasz pliku wymiany / partycji, (starsze) aplikacje zostaną zamienione, a przywracanie zajmie prawie tyle samo pracy, co pełne przeładowanie. Z wyjątkiem: przy pełnym przeładowaniu twórca aplikacji oddzielił trwałe dane tymczasowymi danymi i może zoptymalizować, co zapisać, a co nie, aby poprawić pamięć. Podczas przywracania wymiany nie pozostawiasz dewelopera aplikacji nic do powiedzenia i wymieniasz wszystko.
Lie Ryan,
@evergreen: Nawet jeśli założenie, że trwałość flasha nie stanowi problemu, Android nie powinien wymieniać, ponieważ cykl życia aplikacji jest lepszy. Android Life Cycle jest przeznaczony dla środowiska o ograniczonej pamięci, w środowisku komputerów stacjonarnych i serwerów, masz gigantyczną ilość pamięci, a użytkownicy wykonują znacznie więcej zadań wielozadaniowych i nie oczekują, że system operacyjny zabije programy działające w tle. Słabość Androida Life Cycle polega na tym, że wymaga obsługi aplikacji. Aplikacja musi być gotowa do zabicia w dowolnym momencie i musi zapisywać stan we wcześniej określonych punktach. Taka złożoność jest obca dla aplikacji komputerowych.
Lie Ryan,
5

Wymiana jest zdecydowanie korzystna, pomimo tego, co powiedzą ci wszyscy inni w Internecie. Wypróbuj i przekonaj się sam. Empirycznie, w telefonie G1 lub innym telefonie z małą ilością pamięci zamiana sprawia, że ​​telefon działa lepiej i szybciej.

Tak, Android ma wbudowane „zarządzanie zadaniami” cyklu życia, ale nie jest zbyt dobre. To rutynowo zabija procesy , gdy zabraknie pamięci, i oczekuje się, że aplikacje, aby zapisać swój stan używając „ Wiązki ” tak, że kiedy je uruchomić ponownie, że ponowne uruchomienie w tym samym stanie, w jakim były w ubiegłym.

Gdy Android ustali, że musi usunąć proces, robi to brutalnie, po prostu go zabijając. Jądro może natychmiast odzyskać wszystkie zasoby potrzebne procesowi, bez polegania na tym, że aplikacja jest dobrze napisana i reaguje na uprzejme żądanie wyjścia. Umożliwienie jądru natychmiastowego odzyskania zasobów aplikacji znacznie ułatwia uniknięcie poważnych sytuacji braku pamięci.

Byłoby wspaniale, gdyby faktycznie zadziałało, i byłoby lepsze niż masowa zamiana. Ale aplikacje tak naprawdę nie zapisują swojego stanu; po prostu zapisują minimalną ilość informacji, aby wrócić do tego stanu. (A niektóre aplikacje nawet nie zawracają sobie tym głowy.) Powrót do tego stanu wymaga czasu. Ponieważ swap faktycznie zapisuje cały stan aplikacji, który musi zostać ponownie załadowany, przełączanie między aplikacjami jest znacznie szybsze.

Jeśli na przykład przełączysz się na inną aplikację z przeglądarki, przeglądarka prawie zawsze zostanie zabita, a następnie po ponownym przejściu do niej musi ponownie załadować całą stronę z Internetu . Trwa to o wiele dłużej niż ponowne ładowanie stanu z wymiany, marnuje pieniądze, jeśli korzystasz z planu danych, i powoduje problemy ze stanem, gdy strona jest dynamiczna.

Wiele aplikacji uruchamia się znacznie dłużej niż powinno lub nie powraca do tego samego stanu po ponownym uruchomieniu, więc ich zamiana działa lepiej.

Zgaduję, że ludzie, którzy są zadowoleni z systemu giełdowego, używają swoich telefonów inaczej.

Czy powinienem używać partycji wymiany z Cyanogenmod?

endolit
źródło
Jeśli pozostawisz to w cyklu życia, decyzja o buforowaniu dodatkowych danych w celu zwiększenia wydajności (np. Załadowanych stron internetowych) będzie decyzją aplikacji. Jeśli korzystasz z opcji zamiany, to decyzja systemu operacyjnego, ale system operacyjny nie jest w stanie najlepiej określić, co zapisać, a czego nie, aby zoptymalizować wydajność, więc musi wszystko zapisać i przywrócić. Przeglądarka nie pobiera ponownie stron z Internetu, jeśli zmieniasz zadania, często otwieram przeglądarkę, przechodzę do wielu ciężkich gier i innych działań, i wracam do przeglądarki z ostatnią stroną z natychmiastowym załadowaniem wszystkiego.
Lie Ryan,
Dobrze. Żaden system nie jest optymalny, ale zamiana jest lepsza dla większości aplikacji. Przeglądarka przeładowuje stronę tylko, jeśli zostanie zabita przed jej ponownym otwarciem. Na telefonie z małą ilością pamięci prawie zawsze zostanie zabity.
endolith,
@LieRyan - „wróć do przeglądarki z moją ostatnią stroną z natychmiastowym załadowaniem wszystkiego” Czy przeglądarka przywraca pozycję przewijania na otwartych stronach po ponownym załadowaniu? Tego nie robi Chrome (chociaż bardzo podoba mi się ta przeglądarka), co jest bardzo niefortunne, gdy przestałeś czytać na środku raczej raczej
logowanej
2

Mam Spice mi-435 (sprzedawany tylko w Indiach), który ma pamięć RAM tylko 340 MB. Do diabła, pliki wymiany bardzo pomagają. Mój telefon działa w trybie ICS na tak niskiej pamięci RAM i zdecydowanie wszedł w wiele stanów braku pamięci, a tam plik wymiany bardzo pomaga. Wszystkie stany aplikacji są przekazywane do wymiany, gdy nie są aktywne. Dzięki temu mój telefon ma więcej aplikacji i aplikacji wymagających dużej ilości pamięci RAM, aby działały płynnie ze znacznie mniejszym opóźnieniem niż wcześniej. Chociaż pojawia się problem po otwarciu aplikacji, z której wcześniej korzystałem. Załadowanie stanu zajmuje trochę czasu, ponieważ SD jest znacznie wolniejszy niż szybka pamięć RAM na pokładzie. Ale opcja zamiany jest lepsza dla tak mniej pamięci RAM. Polecam zamianę partycji na RAM mniejszą niż 512 MB, ale nie większą niż 512 MB.

Mam nadzieję, że to jest pomocne.

sambit rout
źródło
1

Plik wymiany pomaga nawet w systemach z większą pamięcią RAM. Mój czterordzeniowy tablet 7-calowy RAM 7-calowy został znacznie przyspieszony przez zrzucenie w zamianie 2 GB na karcie micro SD SDH-1. I oczywiście cena pamięci gwałtownie spada, a nawet przy ciągłym zapisie, nand flash ma trwać lata.

Jestem w zasadzie zdania, ponieważ różnica w wydajności jest tak radykalna, że ​​prawdopodobnie każdy z mniej niż naprawdę dużą ilością pamięci RAM powinien to robić. W rzeczywistości powinno to prawdopodobnie stanowić standardową opcję w Androidzie (wraz z większymi pamięciami podręcznymi aplikacji i odpowiednią wielkością pamięcią podręczną Internetu).

Mam na myśli, że masz 64-128 GB micro SD (UHS-1), a nawet UHS-2, które pojawiły się w tym roku, a także wewnętrzny NAND 16-64 GB, często „szybki” NAND, który jest rodzajem prymitywnego SSD lub nawet dyski SSD, które są używane na tabliczkach z systemem Windows - nie do końca wypełniasz tak dużą przestrzeń dużą prędkością. Prędkość naprawdę wchodzi w grę tylko z wideo lub ładowaniem aplikacji do pamięci - co jest właśnie tutaj.

Oczywiście idealnie, producenci skupiliby się bardziej na pamięci RAM, a nie na rozdzielczości lub dodatkowych rdzeniach, ponieważ wyraźnie szybkość systemu jest bardzo korzystna z wyższego pamięci RAM - i prawdopodobnie powinni również zwiększyć prędkość pamięci wewnętrznej (np. Przejście na systemy typu pełnego SSD lub co najmniej „szybki” nand. Ale w międzyczasie, podczas gdy wysokie rozdzielczości mają tendencję do powodowania pewnego rodzaju deficytu pamięci RAM we wszystkich urządzeniach, plik wymiany i buforowanie do dość zgrabnego zewnętrznego sd ma sens.

Rzeczywiście, byłoby miło widzieć, że niektóre przeglądarki również pełniej buforują, większość przeglądarek jest albo powolna, albo niska, rzadko szybka i pełna - a częściowo dlatego, że miejsce na pamięć podręczną aplikacji na dysku wewnętrznym jest niewielkie. Zostały zaprojektowane do działania w środowisku o niskiej pamięci i pamięci, a cała historia się zmienia. Nawet jeśli taran nie jest w stanie posiekać tyle, ile powinien, pamięć na pewno jest i może być dość cholernie szybka jak na standardy UHS-1 (lub uhs-2 wydane w tym roku), nawet jeśli nie jest to „ szybki ”lub ssd.

A koszt pamięci zewnętrznej to tak naprawdę orzeszki ziemne, nawet dla większej pojemności uhs-1. Co najmniej 64 GB uhs-1 jest całkowicie przystępne (50 dolców tam, gdzie ja jestem, ale byłoby to mniej USD), znacznie tańsze niż urządzenie, a 32 GB i mniej to w zasadzie kilka dziesiątek.

Naprawdę mnóstwo lekcji z pulpitu, szczególnie teraz, gdy specyfikacje są coraz wyższe - najwolniejsze łącze wydajności ładuje się z pamięci do pamięci RAM. Im więcej możesz zrobić, aby to złagodzić, tym lepiej.

Jamie
źródło