外观
如何理解缺页异常与启动延迟?
标准回答
进程访问尚未建立有效映射的页面时可能触发缺页。minor fault通常不需要从存储读取目标页,major fault可能涉及I/O;具体类型还受映射和回收状态影响。
启动需要读取DEX、资源或动态库,页缓存状态会影响耗时;内存压力下曾经可快速访问的内容也可能需要重新取回。没有显式read调用不代表没有存储等待,mmap访问也可能缺页。
联合观察缺页、线程状态、块I/O、内存压力与代码/资源布局。减少不必要加载、改善局部性或减少大范围随机读取,比简单把所有数据提前加载到内存更有针对性。
追问与回答
第二次启动更快,能证明代码优化成功吗
不能。页缓存、编译和预热状态可能变化。必须控制实验条件,再把变化归因到代码。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q064