Für Seitengröße von 16 KB optimieren

Bei den meisten Programmieraufgaben ist die Seitengröße nicht relevant. Wenn Sie jedoch große Mengen an Arbeitsspeicher zuweisen, an hochoptimierten Komponenten arbeiten, direkt mit dem Kernel interagieren oder große Mengen an Dateien bearbeiten, kann die Umstellung von Android auf die Seitengröße von 16 KB Ihre Leistungsanalyse beeinflussen. In diesem Dokument werden einige Möglichkeiten beschrieben, wie sich die Seitengröße auf die Leistung auswirkt.

Arbeitsspeicherprobleme erkennen

Wenn Sie Arbeitsspeicher mit mmap zuweisen, müssen Sie immer ein Argument übergeben, das ein Vielfaches der Seitengröße ist. Wenn Sie auf einem System mit einer Seitengröße von 16 KB 4096 Byte anfordern, weist der Kernel 16 KB zu und verschwendet 12 KB Speicherplatz. Sie können dies mit /proc/maps, /proc/smaps (oder mit dem Android-Tool showmap, das den verschwendeten Speicherplatz übersichtlich ausgibt) oder mit strace Ihres Prozesses erkennen.

Probleme mit dem Speicherplatz erkennen

Auf Geräten mit Android 15 und höher sind ELFs standardmäßig auf 16 KB ausgerichtet. Viele Anwendungen sind ebenfalls auf 16 KB ausgerichtet. Unabhängig vom System haben viele Dateien mehr Padding. Mit du <my file> können Sie die tatsächliche Dateigröße sehen und erfahren, wie viele Kilobyte eine Datei belegt. Mit du -b <my file> können Sie die scheinbare Größe einer Datei in Byte sehen. Wenn die scheinbare Größe größer als die tatsächliche Größe ist, ist die Datei in der Regel komprimiert oder hat spärliche Bereiche. Wenn die scheinbare Größe kleiner als die tatsächliche Größe ist, enthält die Datei wahrscheinlich zusätzliche Metadaten oder ist auf dem Laufwerk aufgeteilt. Mit diesen Prüfungen können Sie die tatsächliche Größe von Dateien auf dem Laufwerk analysieren.