启动速度优化记录
Posted 杨哲丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启动速度优化记录相关的知识,希望对你有一定的参考价值。
启动速度优化
初步测试
初步测试各个方法耗时:
序号 | 测试结果(ms) |
---|---|
Freso | 45 |
DownloadMannager | 3 |
okCache | 80 |
imageLoader | 17 |
Bugly | 40 |
LoginFromLocal | 167 |
InitSobot | 4 |
InitHpplay | 57 |
initYouZan | 220 |
测试依据
Trace分析 : 测试依据:具体可以参考 https://zhuanlan.zhihu.com/p/27331842 (支付宝大佬通过这个测试)
优化 Application 部分
代码如下:
@Override
public void onCreate()
super.onCreate();
Trace.beginSection("KaishuApplication");
// .... 省略中间代码
Trace.endSection();
开始测试,Let‘s Go !!!!!!
一、 启动优化前(BH540 分支测试):
测试步骤: 测试五次,去掉一个最高,去掉一个最低: 然后剩下三个取平均值
序号 | 测试结果(ms) | 平均值 |
---|---|---|
1 | 1593 | 去掉 |
2 | 1619 | 去掉 |
3 | 1579 | 采用 |
4 | 1598 | 采用 |
5 | 1571 | 采用 |
最终平均值: (1579+1598+1571)/ 3= 1583ms
二、 启动优化后:
处理方法: 异步处理极光和友盟,去掉设置极光别名后,代码 修改如下:
// 异步处理 极光和友盟 todo: 有赞(200ms)左右还需要和有赞沟通是否能有api来优化
if (DeviceUtils.isMainProcess(this))
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.execute(new Runnable()
@Override
public void run()
JPushInterface.setDebugMode(false);
JPushInterface.init(context);
initUmengShareAndLogin();
initUmengStatistics();
);
// 单独为KaishuApplication 初始化 登录的方法
public static void setLoginedFromLocal(Context context, MasterUser localMasterUser)
//*************************
if (DeviceUtils.isMainProcess(context))
setLoginedForApplication(localMasterUser, false);
public static void setLoginedForApplication(MasterUser user, boolean bwriteToLocal)
....
// 注释 设置别名 单独为
// JPushInterface.setAlias(KaishuApplication.getContext(), 1, "jpush" + masterUser.getUserid());
....
测试步骤: 测试五次,去掉一个最高,去掉一个最低: 然后剩下三个取平均值
序号 | 测试结果(ms) | 平均值 |
---|---|---|
1 | 692 | 去掉 |
2 | 770 | 去掉 |
3 | 708 | 采用 |
4 | 717 | 采用 |
5 | 701 | 采用 |
最终平均值: (708+717+701)/ 3= 709ms
最终优化结果
最终优化结果: (1583-709) / 1583 = 55.2 %
优化速度 55.2%
以上是关于启动速度优化记录的主要内容,如果未能解决你的问题,请参考以下文章
Day679.优化并提高Tomcat启动速度 -深入拆解 Tomcat & Jetty
全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等