Tips——App启动速度的优化与监控
2024-10-21 13:28:51
一、App的启动模式
- 冷启动:App点击启动前,它的进程不在系统里,需要系统新创建一个进程分配给它启动的情况。这是一次完整的启动过程。
- 热启动:App在冷启动后用户将App退后台,在App的进程还在系统里的情况下,用户重新启动进入App的过程,这个过程做的事情非常少。
二、App冷启动的优化
用户感知启动慢,应该都发生在主线程上。其原因有很多,比如:在主线程上执行大文件读写操作、在渲染周期中执行了大量计算等。
App的启动主要包括三个阶段:
- main() 函数执行前(加载可执行文件、加载动态链接库...);
- main() 函数执行后(首屏初始化所需配置文件的读写操作、首屏列表大数据的读取、首屏渲染的大量计算...);
- 首屏渲染完成后(非首屏其他业务服务模块的初始化、监听的注册、配置文件的读取等)。
三、两种级别的启动优化
- 功能级别的启动优化:main() 函数开始执行后到首屏渲染完成前只处理首屏相关的业务,其他非首屏业务的初始化、监听注册、配置文件读取等都放到首屏渲染完成后去做。
- 方法级别的启动优化:进一步检查首屏渲染完成前主线程上的耗时方法,将没必要的耗时方法滞后或异步执行。
四、监控App启动速度
定时抓取主线程上的方法调用堆栈,计算一段时间里各个方法的耗时。
(本文内容来自戴铭专栏)
最新文章
- Kooboo CMS 无聊随笔(2)
- salt yum安装lamp
- Firefox上Web开发工具库一览
- 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别
- Storm集群安装详解
- React vs Angular 2: 冰与火之歌
- Python可视化库Matplotlib的使用
- SKCTF Writeup
- 基于Keil软件的MCU环境搭建
- 前端的图片压缩image-compressor(可在图片上传前实现图片压缩)
- Delphi使用iTools安卓模拟器
- USB接口案例——多态和转型
- TensorFlow-实战Google深度学习框架 笔记(上)
- python基础一数据类型之列表
- linux c中select使用方法
- 关于51精确延时及keil仿真延时时间
- kue
- CommonLang3 --StringUtils使用指南
- Java Collection.Map
- Java-Maven-Runoob:Maven环境配置