Pytanie:
Używasz rozmiaru wymiany podczas partycjonowania?
Sujan
2012-12-20 23:56:39 UTC
view on stackexchange narkive permalink

Właśnie zrootowałem swój telefon (Android 2.3.6) i podzieliłem kartę SD za pomocą odzyskiwania CWM . Podczas partycjonowania zauważyłem rozmiar wymiany , a podczas poszukiwań różne blogi ( programiści xda) zalecali używanie 0M jako rozmiaru wymiany . Jaki jest pożytek z tego? Dlaczego zalecane jest 0M ?

Cztery odpowiedzi:
Compro01
2012-12-21 01:27:59 UTC
view on stackexchange narkive permalink

Głównymi powodami dla zaleceń no swap jest podstawowa bezużyteczność wymiany dla większości urządzeń, względy wydajności i długowieczność urządzenia.

Jak wspomina Liam, w nowoczesnych urządzeniach nie brakuje pamięci RAM (nawet moje stare Wildfire S ma tyle samo pamięci RAM, co mój poprzedni komputer stacjonarny .) I ta pamięć RAM jest dość dobrze zarządzana przez nowoczesny system Android, co sprawia, że ​​wymiana jest w dużej mierze bezcelowa.

Ponadto, mimo że flashowanie jest znacznie lepszy niż talerze wirującej rdzy, nadal jest o rząd wielkości wolniejszy niż pamięć RAM, dlatego ze względu na wydajność nie chcesz ograniczać się do flashowania, jeśli w ogóle możesz tego uniknąć.

Ponadto , pamięć flash ma limit, ile razy można ją wymazać i przepisać. Chociaż ten limit cykli wynosi zwykle tysiące lub dziesiątki tysięcy, co w połączeniu z nowoczesnymi systemami równoważenia zużycia oznacza, że ​​jest mało prawdopodobne, abyś osiągnął limit w ciągu użytecznej żywotności urządzenia, ale jeśli używasz go jako wymiany, z mnóstwo i mnóstwo drobiazgowych zapisów, będziesz niepotrzebnie przeżuwać te cykle i może faktycznie zderzyć się z tymi ograniczeniami w czasie.

Twój poprzedni komputer stacjonarny miał tylko 512 MB pamięci RAM? Czy masz komputer stacjonarny od lat 90-tych?
@intuited Mój poprzedni komputer stacjonarny zbudowałem w 2001 roku. 512 było wówczas sporą ilością. Mój obecny komputer stacjonarny zaczynał się od 2 GB, potem został zaktualizowany do 4, a teraz ma 12.
Dylan Yaga
2012-12-21 00:07:27 UTC
view on stackexchange narkive permalink

Użycie pliku wymiany to więc oszczędność pamięci (RAM) do przechowywania (dysk twardy / karta SD).

Zaleca się 0mb dla rozmiaru pliku, ponieważ zwykle nie jest to potrzebne. Android zajmuje się zarządzaniem pamięcią w inny sposób niż pliki wymiany.

Tło:

Plik wymiany jest tradycyjnie używany do przechowywania tego, co zwykle znajduje się w pamięci, gdy jest mało pamięci. Pozwala to na przełączenie go z powrotem do pamięci w razie potrzeby.

Cytując z bloga o zerowej wiarygodności

Android, choć dość typowy (ale trim) Linux pod osłonami ma swój własny mechanizm obsługi stanów małej ilości pamięci. Kończy aplikację, ale najpierw daje jej możliwość utrzymania jej stanu (za pomocą serii wywołań zwrotnych). Na przykład aplikacja mapy może zachować szerokość i długość geograficzną, zanim zostanie zakończona. Gdy ponownie otwierasz aplikację, lokalizacja jest przekazywana z powrotem, więc wygląda na to, że aplikacja była uruchomiona przez cały czas. W rzeczywistości aplikacja została całkowicie zrestartowana.

(moje wyróżnienie)

Powyższe opisuje, jak widziałem, jak aplikacje utrzymują się po przełączeniu z zadania do

Nie ma potrzeby zapisywania zawartości pamięci w pamięci, ponieważ Android po prostu zapisze bieżące dane aplikacji i zamknie aplikację.

Czy ktoś może wyjaśnić głos przeciwny, aby poprawić odpowiedź?
Nie wierzę, że to w pełni odpowiada na pytanie ...
Dziękuję za odpowiedź. Ale szukam jaśniejszego.
Izzy
2012-12-21 02:24:50 UTC
view on stackexchange narkive permalink

Ponieważ inne odpowiedzi już obejmują większość faktów, tylko mały dodatek: jako przykład zredagowałem już aplikację Swapper for Root users na odpowiedź Liama ​​. A odpowiedź Compro01 wspominała już o niebezpieczeństwie zużycia pamięci flash karty SD. Teraz połączmy oba razem:

Podczas korzystania z aplikacji Swapper do obsługi wymiany, zaleca się, aby nie używać partycji wymiany , ale plik wymiany , właśnie z tego powodu. Ten plik wymiany jest następnie umieszczany w innym miejscu pamięci flash za każdym razem, gdy zamiana jest aktywowana, co pozwala uniknąć zawsze zapisywania / usuwania tych samych bloków, a tym samym oszczędza trochę więcej żywotności pamięci flash.

Porównanie obu:

  • Partycja wymiany: szybciej, ale szybciej zużywa pamięć flash.
  • Plik wymiany: trochę wolniej, ale nie zużywa pamięci flash tak szybko

Mając to na uwadze, staje się jasne, dlaczego a) 0M (tj. Brak partycji wymiany) jest zalecane oraz b) w ogóle oferowana jest partycja wymiany (dla tych, którzy nie chcą kupować nowych kart, ale chcą dodatkowej małej szybkości).

Partycja wymiany a plik wymiany nie zrobiłby żadnej różnicy. Za wyrównanie zużycia odpowiada kontroler flash, a nie żadna część oprogramowania układowego ani systemu Android. Układ partycji nie ma stałego związku z fizyczną lokalizacją czegokolwiek na chipie flash.
Ta część mojego wyjaśnienia pochodzi z dokumentacji * Swapper *. Ponieważ nigdy nie korzystałem z zamiany na moich urządzeniach z Androidem, nie kopałem głębiej. Ale irytuje mnie, że układ partycji nie powinien być związany z blokami na nośniku. Jesteś tego pewien? „Jak to wtedy działa” byłoby innym pytaniem - ale może mógłbyś przynajmniej wspomnieć o źródle?
Swapper reprezentuje coś ze starego porządku rzeczy. Na początku historii Androida wiele urządzeń korzystało z surowych układów pamięci flash NAND do przechowywania i korzystało ze specjalnych systemów plików, takich jak YAFFS, do obsługi wyrównania zużycia. W tym miejscu do gry wkracza plik kontra partycja, ponieważ plik wymiany używałby specjalnego systemu plików równoważącego zużycie, w przeciwieństwie do partycji wymiany korzystającej z alokacji statycznej. Nie ma to już znaczenia, ponieważ wszystkie obecne urządzenia zamiast tego używają eMMC do przechowywania zamiast surowego flashowania. eMMC ma kontroler zintegrowany z pakietem i jest niewidoczny dla systemu operacyjnego i wszystkiego innego.
Brzmi rozsądnie. „eMMC” to skrót od „emulated MMC” - czy dotyczy to tylko pamięci wewnętrznej, czy też (nowszych) kart SD? Może mieć znaczenie w tym kontekście.
Nie, eMMC to wbudowana konsola MMC. Jest to po prostu układ flash z kontrolerem i pamięcią podręczną wbudowanymi bezpośrednio w pakiet IC. To nie jest tak naprawdę MMC, ponieważ jest to chip, a nie karta, ale to to samo, co MMC z poziomu oprogramowania. To jest pamięć wewnętrzna w zasadzie we wszystkich nowoczesnych urządzeniach z Androidem. Karty SD są rozszerzeniem specyfikacji MMC, w szczególności dodając możliwość DRM. Ponownie, wszystko jest obsługiwane przez kontroler. Z zewnątrz karty / chipa wszystkie elementy wyrównujące zużycie są niewidoczne. Dopóki nie otworzysz paczki, nigdy nie będziesz wiedział, że bloki 1 i 2 nie są blisko siebie.
Bardzo dziękuję za wyjaśnienie! Krótko mówiąc, dotyczy to obu - a cała koncepcja „plik kontra partycja” jest „przestarzała”, ponieważ mapowanie * wszystkich * bloków (nawet dla partycji) nie jest już ustalane, ale obsługiwane przez kontroler. Jeśli to podsumowanie jest poprawne (proszę o potwierdzenie), odpowiednio zaktualizuję moją odpowiedź (aby nikt nie musiał przeglądać wszystkich naszych komentarzy). ** ALE: ** według https://wiki.linaro.org/Flash%20memory tak nie jest: * Partycje są dalej podzielone na bloki * - tak jest jak myślałem. Czy możesz podać źródło swojego wyjaśnienia?
Partycja składa się z bloków tak, ale są to bloki skierowane do urządzenia, a nie stałe bloki fizyczne na chipie flash. Bloki na zarządzanym chipie flash są dokładnie takie same, jak sektory na dysku twardym z perspektywy systemu operacyjnego. Nie mam łatwo dostępnego źródła, ponieważ przypominam sobie to z mojej architektury komputerowej i zajęć z interfejsami na uczelni.
Liam W
2012-12-21 00:08:28 UTC
view on stackexchange narkive permalink

Zamiana to w zasadzie wirtualna pamięć RAM używana przez jądro Linuksa.

Zamiana w systemie Android była używana, gdy urządzenia miały bardzo ograniczoną pamięć RAM (używałem jej z moim LG Optimus GT540), aby zwiększyć ilość dostępnej pamięci RAM do systemu operacyjnego Android.

Android zabija aplikacje, gdy zabraknie mu pamięci - i jest bardzo dobry w robieniu tego wydajnie, jednak na urządzeniach z małą ilością pamięci RAM ludzie mogli widzieć zabijanie aplikacji na ekranie głównym, a zatem muszą chwilę poczekać, aby dostać się do ich ekranów głównych.

Swap można zamontować za pośrednictwem partycji lub pliku - głównie na zewnętrznym (lub wewnętrznym) urządzeniu magazynującym. Zamiana jest normalnie aktywowana przez tak zwane skrypty inicjujące w folderze /etc/init.d urządzenia, aby zamontować / włączyć wymianę podczas rozruchu urządzenia.

Pulpity z systemem Linux używają partycji do wymiany, a użytkownik jest proszony o utworzenie jej podczas procesu instalacji.

Plik jest zwykle przechowywany na karcie SD lub nośniku pamięci. Plik wymiany w systemie Android jest normalnie montowany (i tworzony) przez aplikację (np. Swapper dla użytkowników root).

Większość nowszych urządzeń nie odniesie żadnych korzyści z używania zamiany - ponieważ zwykle mają tyle pamięci RAM, co komputer stacjonarny (mój SGS2 ma 1 GB!), i dlatego nie skorzystaliby na posiadaniu większej ilości wirtualnej pamięci RAM.

Niestety, korzystanie z zamiany może mieć swoją cenę - nawet na urządzenia z niską pamięcią RAM, ponieważ system operacyjny musi spędzać czas na zapisywaniu na karcie SD, która normalnie miałaby niską prędkość odczytu / zapisu. W związku z tym nie jest obecnie w ogóle używany, chyba że urządzenie ma nieprzyzwoicie małą ilość pamięci RAM.

Poza tym korzystanie z zamiany może mieć negatywny wpływ na żywotność urządzenia pamięci i należy go używać ostrożnie. Jeśli ktoś czytający musi użyć zamiany (i odradzałbym tego), użyj pliku z aplikacją, ponieważ zmienia ona lokalizację pliku wymiany, aby zmaksymalizować żywotność karty SD.

hmm ... całkiem satysfakcjonujący.
W Androidzie zamiana nie jest potrzebna - jasne i proste :) -1 ode mnie, odpowiedź Compro01 jest najlepsza i podsumowuje to dokładnie!


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...