Für die meisten Programmieraufgaben ist die Seitengröße nicht relevant. Wenn Sie jedoch große Mengen an Arbeitsspeicher zuweisen, an hoch optimierten Komponenten arbeiten, direkt mit dem Kernel interagieren oder eine große Anzahl von 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 mit mmap
Arbeitsspeicher 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 und verschwendet 12 KB
Byte Speicherplatz. Sie können /proc/maps
, /proc/smaps
(oder das Android-Tool showmap
verwenden, mit dem der verschwendete Speicherplatz schön gedruckt wird) oder die strace
Ihres Prozesses prüfen, um diese zu 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 ein erhöhtes Padding. Mit du <my file>
können Sie die tatsächliche Größe auf dem Laufwerk sehen, also wie viele Kilobyte eine Datei belegt. Mit du -b <my file>
können Sie die scheinbare Größe einer Datei in Byte aufrufen. 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 Bereiche mit wenigen Daten enthält. Wenn die scheinbare Größe kleiner als die tatsächliche Größe ist, enthält die Datei wahrscheinlich zusätzliche Metadaten oder ist auf der Festplatte auf mehrere Dateien aufgeteilt. Mit diesen Prüfungen können Sie die tatsächliche Größe von Dateien auf der Festplatte analysieren.