移动性能测试 APP 响应时间测试中,启动时间的冷启动和热启动的定义到底是什么

子非鱼 · 2018年04月13日 · 最后由 啄木鸟 回复于 2018年05月07日 · 2690 次阅读

最近在测试响应时间,遇到冷热启动的时候,发现对这两个的时间定义有点疑问。
看网上有人说:
app 冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。
app 热启动: 当应用已经被打开, 但是被按下返回键、Home 键等按键时回到桌面或者是其他程序的时候,再重新打开该 app 时, 这个方式叫做热启动(后台已经存在该应用进程)。
【疑问】应用首次安装后打开应用,符合【后台没有该应用的进程】的条件;应用首次安装后打开应用,杀掉进程,再打开,也符合【后台没有该应用的进程】的条件,但是一般应用这两个时间是不一样的(比如,第一次打开后可能缓存数据),那么,冷启动到底指哪一种场景呢?

共收到 4 条回复 时间 点赞

应该都包含了,假如你有缓存数据,再次启动需要读取到部分数据,那么就要评估这个数据缓存读取的影响了,此时首次安装启动可以作为一个比较的参考,从用户场景来说,肯定是非首次安装启动更频繁,影响更大,没必要纠结这个

John 回复

恩,有道理

  1. 首次安装时,大部分应用都时会有大量的初始化的数据写入,这时候会导致你在提取启动时间时和 ‘冷启动’ 有比较明显的差异。
  2. 然而在 ‘冷启动’ 中即使后台没有进程你在杀掉后马上重启应用也会有时间上的差异(个人理解可能 gc 机制导致)。
  3. 另外在纵向对比(和迭代版本对比)‘首次安装启动’ 还是有意义的。
  4. 在横向对比时(竞品对比)更多的还是对于非首次安装启动更有意义。

如果非要把冷启动和首次启动做比较的话,个人建议可以把该两个测试分别作为两个参考指标。因为首次启动应用时会有很多的数据或配置文件的初始化工作,因此其启动时间远远大于冷启动的启动时间,这样的话 app 的启动时间也就变成了从 3 个指标去衡量了:
1、首次启动时间;
2、冷启动时间;
3、热启动时间。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册