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, mit 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 Leistungsdynamik auswirkt.

Arbeitsspeicherprobleme erkennen

Wenn Sie mit mmap Speicher zuweisen, müssen Sie immer ein Argument übergeben, das ein Vielfaches der Seitengröße ist. Wenn Sie 4096 Byte auf einem System mit einer Seitengröße von 16 KB anfordern, weist der Kernel 16 KB zu, wodurch 12 KB an Speicherplatz verschwendet werden. Sie können diese Probleme erkennen, indem Sie /proc/maps, /proc/smaps oder das Android-Tool showmap verwenden, das den verschwendeten Speicherplatz übersichtlich ausgibt, oder indem Sie den strace Ihres Prozesses prüfen.

Probleme mit dem Speicherplatz erkennen

Auf Geräten, die mit Android 15 und höher auf den Markt kommen, sind ELFs standardmäßig auf 16 KB ausgerichtet. Viele Anwendungen sind ebenfalls auf 16 KB ausgerichtet. Unabhängig vom System haben viele Dateien ein erhöhtes Padding. Wenn Sie die tatsächliche Größe auf der Festplatte sehen möchten, können Sie mit du <my file> herausfinden, wie viele Kilobyte eine Datei belegt. Wenn Sie die tatsächliche Größe einer Datei sehen möchten, können Sie du -b <my file> verwenden. Dort wird die Größe in Byte angezeigt. Wenn die scheinbare Größe größer als die tatsächliche Größe ist, bedeutet das in der Regel, dass die Datei komprimiert ist oder spärliche Regionen enthält. Wenn die angezeigte Größe kleiner als die tatsächliche Größe ist, enthält die Datei wahrscheinlich zusätzliche Metadaten oder ist auf der Festplatte aufgeteilt. Mit diesen Prüfungen können Sie die tatsächliche Größe von Dateien auf der Festplatte analysieren.