对应用启动的优化措施

简介: 学习笔记

对于应用启动到底合不合格,除了固定的指标之外,还有一点就是跟对比机之间进行测试对比,看有没有差距。如果不达标或者跟对比机有差距,那就要对应用启动进行优化。

对于性能差距的分析,需要抓取traces查看两台机器之间是否有区别。

对比

抓取traces后,不仅要跟对比机进行对比,也要跟正常的traces进行对比,发现是哪个环节出了问题,究竟是哪一个流程比正常的慢。

Running State

对于正在运行的CPU,我们要从以下几个维度去分析

  • CPU的频率是否正常,有没有添加限制或者跟对比机相同。
  • CPU的架构跟对比机是否一样,有的CPU会因为架构的原因对机器本身的性能产生了限制,例如KI7的A88CPU是6小核2大核,它在其他所有条件都相同的情况下一定跑不过4大核4小核的机器。
  • 如果CPU性能和架构都差不多,那就要看CPU上是否任务过重,把有些优先级没那么重要的线程延后或者放到小核去做。
  • DDR频率是否一样
  • Android版本的差距

企业微信截图_16680515616760.png

如上图所示,这是淘宝启动的时候CPU的变化,频率在启动的时候直接被拉满,并且淘宝有关的线程大多都放在了大核上去做。


Runnable State

可运行的CPU上面,我们可以看这几个差距

  • 首先看线程的设定,有没有被其他线程抢占优先级,可以先对线程优先级进行调整
  • 可以查看有没有其他较为空闲的CPU,如果有的话可以调整上去
  • 如果还是不行,就要查看CPU有没有异常背景导致任务过重找问题优化线程


CPU Loading计算: Totals time/(Selection extent time*Online CPU Number)*100%

如果CPU Loading>85%,基本确认有loading 重的嫌疑


在了解了这些后,优化应用启动的时间主要依据下面几点

  1. 提高CPU频率
  2. 提高DDR频率
  3. 拉长CPU和DDR提频时长
  4. 在可以减少动画播放的地方关闭动画
  5. 在应用安装的时候进行预编译,减少启动时长
  6. 在app白名单内专门进行配置
  7. 将启动时用到的线程跑在大核
  8. 在启动时尽量不使用网络IO


冷启动与热启动

冷启动耗时统计

adb 命令统计

adb命令 : adb shell am start -S -W 包名/启动类的全限定名 , -S 表示重启当前应用

image2022-11-16_22-34-39.png

  1. 在第①个时间段内,AMS 创建 ActivityRecord 记录块和选择合理的 Task、将当前Resume 的
    Activity 进行 pause.
  2. 在第②个时间段内,启动进程、调用无界面 Activity 的 onCreate() 等、 pause/finish 无界面的
    Activity.
  3. 在第③个时间段内,调用有界面 Activity 的 onCreate、onResum


如果需要统计从点击桌面图标到 Activity 启动完毕,可以用WaitTime作为标准。

相关文章
|
10月前
|
传感器 机器学习/深度学习 数据采集
电潜泵的预测性维护——检测电潜泵的故障
电潜泵的预测性维护——检测电潜泵的故障
111 0
|
7月前
|
存储 设计模式 安全
渗透攻击实例-设计缺陷/逻辑错误
渗透攻击实例-设计缺陷/逻辑错误
|
8月前
|
监控 算法
企业电脑监控软件任务处理的贪婪算法优化策略
贪婪算法可是个超级简单又见效的小玩意,对于某些特殊问题来说,简直是神器。说白了,就是帮你把事情弄得更有条理。以优化企业电脑监控软件的任务处理为例,你可以考虑借助贪婪算法,搞定一些基本的任务分派和安排。不过要记得,它有个小毛病,就是可能无法找到世界上最完美的解决方案。所以在实际用的时候,得斟酌一下,斟酌一下,再斟酌一下。
87 1
|
11月前
|
SQL 存储 JavaScript
常见系统质量安全性问题相关解决方法
1. SQL注入文件写入(需要用户验证) 解决办法:通过建立过滤器方法,对所有用户输入信息进行清理过滤。通过清理过滤用户输入所包含的危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的Javascript代码、运行各种操作系统命令等。
325 0
|
云安全 监控 安全
配置基线对于数据安全的影响
配置基线对于数据安全的影响
151 0
|
运维 监控 网络协议
如何监控IT正常运行时间,网络正常运行对企业业务至关重要
随着企业的扩展,其IT网络规模也将不断增长。当将大量属于不同类别,由不同供应商制造的设备添加到您的IT基础结构中时,正常运行时间的管理复杂性就急剧上升
110 0
如何监控IT正常运行时间,网络正常运行对企业业务至关重要
|
安全 程序员 数据库
可控参数带来的网站漏洞修复建议方案
网站中存在的越权漏洞,首先我们来讲一下什么是关键可控参数,也就是说像我们的一些关键参数,例如use ID order by ID就是一些关键的参数,必须是你的这么一个测试者,是能够去对其控制的。如果这个参数已经挟持了,或者说他有固定的这个值。那此时的话就不称为可控参数了。而关键就是你的改动必须能造成这个越权效果的一种称为关键参数。我们一定要快速定位到这种关键可控的这个参数之后,我们才能够更快速的去找到对应的这么一个越权漏洞。
147 0
可控参数带来的网站漏洞修复建议方案
|
负载均衡 Java 微服务
从JVM角度思考--如何预估线上环境机器资源大小
如何给JVM虚拟机巧妙地设计参数对大部分开发来说一直是个随缘的事情,可能是去网上拷贝一套参数,可能是沿用公司其他应用的参数。但是这个随缘的操作可能就会给未来留下隐患。给JVM分配的内存过大倒是没什么问题,无非浪费点资源,但是如果分配的内存过小,就有可能导致频繁的Full GC,给人一种系统一直很卡的感觉。这篇文章就通过一个实例分析一下如何结合场景设置JVM虚拟机参数。 当然,本文更重要的是希望能通过预估参数的这个过程,让你更加了解虚拟机内部的一些东西,要想最准确的参数设置,用一些工具记录下JVM各个区域的变化会更有效。
|
JSON 运维 网络协议
平稳运行半年的系统宕机了,记录一次排错调优的全过程!
最近发生了一件很让人头疼的事情,已经上线半年且平稳运行半年系统在年后早高峰的使用时发生了濒临宕机的情况。访问速度特别慢,后台查到大量time_wait的连接,从代码层面到架构层面到网络层面排查了几天几夜,总算是有了结果。
|
SQL 安全 测试技术
网站漏洞渗透检测过程与修复方案
网站的渗透测试简单来 说就是模拟攻击者的手法以及攻击手段去测试网站的漏洞,对网站进行渗透攻击测试,对网站的代码漏洞进行挖掘,上传脚本文件获取网站的控 制权,并对测试出来的漏洞以及整体的网站检测出具详细的渗透测试安全报告。
236 0
网站漏洞渗透检测过程与修复方案