对于大多数编程任务,页面大小不相关。不过,如果您要分配大量内存、处理高度优化的组件、直接与内核交互或执行大量文件操作,Android 向 16 KB 页面大小的过渡可能会增加性能分析的注意事项。本文档重点介绍了网页大小会以哪些方式改变性能动态。
检测内存问题
使用 mmap
分配内存时,请务必始终传递一个为页面大小的倍数的参数。如果您在页面大小为 16 KB 的系统上请求 4096
字节,则内核会分配 16 KB
,从而浪费 12 KB
空间。查看 /proc/maps
、/proc/smaps
(或使用 Android 工具 showmap
,该工具会以直观的方式输出浪费的空间)或检查进程的 strace
有助于检测这些问题。
检测磁盘空间问题
发布时搭载 Android 15 及更高版本的设备默认采用 16 KB 对齐的 ELF,许多应用也采用 16 KB 对齐。无论是哪种系统,许多文件都增加了内边距。如需查看磁盘上的实际大小,您可以使用 du <my file>
查看文件占用的千字节数。如需查看文件的实际大小,您可以使用 du -b <my file>
,它会以字节为单位显示大小。如果实际大小大于表面大小,通常表示文件已压缩或存在稀疏区域。如果实际大小小于表面大小,则文件可能包含额外的元数据,或者可能已在磁盘上拆分。通过这些检查,您可以分析磁盘上文件的实际大小。