Optymalizacja pod kątem rozmiaru strony 16 KB

W przypadku większości zadań programistycznych rozmiar strony nie ma znaczenia. Jeśli jednak przydzielasz duże ilości pamięci, pracujesz nad bardzo zoptymalizowanymi komponentami, nawiązujesz bezpośrednie połączenie z jądrem lub manipulujesz dużymi ilościami plików, przejście Androida na rozmiar strony 16 KB może mieć wpływ na analizę wydajności. W tym dokumencie opisano, jak rozmiar strony wpływa na dynamikę skuteczności.

Wykrywanie problemów z pamięcią

Podczas przydzielania pamięci za pomocą funkcji mmap należy zawsze przekazywać argument będący wielokrotnością rozmiaru strony. Jeśli żądasz 4096 bajtów na systemie ze stroną o rozmiarze 16 KB, jądro przydzieli 16 KB, marnując 12 KB miejsca. Aby je wykryć, możesz wyświetlić /proc/maps, /proc/smaps (lub użyć narzędzia na Androida showmap, które wypisuje niewykorzystane miejsce) albo sprawdzić strace procesu.

wykrywanie problemów z miejscem na dysku,

Urządzenia uruchamiane na Androidzie 15 i nowszych mają domyślnie dopasowane do 16 KB pliki ELF, a wiele aplikacji również jest dopasowanych do 16 KB. Niezależnie od systemu wiele plików ma zwiększony margines. Aby wyświetlić rzeczywisty rozmiar na dysku, możesz użyć du <my file>, aby sprawdzić, ile kilobajtów zajmuje plik. Aby wyświetlić pozorny rozmiar pliku, możesz użyć polecenia du -b <my file>, które pokazuje rozmiar w bajtach. Gdy pozorny rozmiar jest większy niż rzeczywisty, oznacza to zwykle, że plik jest skompresowany lub zawiera rzadkie obszary. Jeśli pozorny rozmiar jest mniejszy niż rzeczywisty, plik prawdopodobnie zawiera dodatkowe metadane lub może być podzielony na dysku. Dzięki tym kontrolom możesz analizować rzeczywisty rozmiar plików na dysku.