对应用启动的优化措施

简介: 学习笔记

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

对于性能差距的分析,需要抓取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作为标准。

相关文章
|
1月前
|
存储 监控 安全
服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
【10月更文挑战第4天】服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
124 65
|
17天前
|
存储 运维 安全
中断向量表的大小是否会影响系统的稳定性?
【10月更文挑战第29天】中断向量表的大小与系统的稳定性密切相关。合理设置中断向量表的大小,并采取有效的管理和保护措施,对于确保系统的稳定运行至关重要。在系统设计和开发过程中,需要充分考虑系统的当前和未来需求,权衡中断向量表大小对系统稳定性的各种影响,以实现系统的高性能和高稳定性。
35 4
|
3月前
|
运维 监控 Devops
运维自动化:提升效率与减少人为错误的策略
【8月更文挑战第12天】在信息技术的海洋中,运维自动化如同一艘装备精良的航船,引领企业驶向高效、精准的彼岸。本文将深入探讨运维自动化的重要性,分析其如何通过智能化工具和策略,实现流程优化、效率提升及错误率降低。我们将一同见证,当创新技术与运维实践相结合时,是如何为企业带来革命性变革的。
|
2月前
|
缓存 监控 算法
软件测试中的性能瓶颈定位与优化策略
性能瓶颈,如同隐藏在系统深处的“拦路虎”,悄无声息地制约着软件的表现。本文将揭示如何通过一系列科学方法,识别并消除这些障碍,从而显著提升软件性能,确保用户享受到流畅无阻的数字体验。
|
4月前
|
运维 监控 持续交付
自动化运维:提升效率与减少人为错误的关键策略
在信息技术快速发展的当下,自动化运维成为企业追求高效、稳定服务的重要手段。本文将探讨自动化运维的概念、实施步骤及其对企业运维工作的深远影响,揭示通过自动化工具和流程优化来提升工作效率和减少人为错误的有效途径。文章还将分享一些行业内的成功案例,为读者提供实践自动化运维的参考和启示。 【7月更文挑战第16天】
41 3
|
4月前
|
运维 持续交付
运维自动化:提升效率与减少人为错误的关键策略
本文深入探讨了运维自动化在现代IT管理中的核心角色,从技术演进的角度分析了自动化工具的发展,并结合具体案例和统计数据,展示了自动化如何显著提高运维效率与准确性。文章还对运维自动化实施过程中的挑战进行了讨论,并提出了相应的解决策略,以期为企业实现运维自动化提供实用的指导。
|
5月前
|
运维 监控 持续交付
自动化运维:提升效率与减少人为错误的现代策略
在数字化时代,自动化运维成为企业追求高效、稳定服务的关键。本文将深入探讨自动化运维的核心价值、实现方法以及面临的挑战,旨在为读者提供一套实用的自动化运维解决方案,帮助企业构建更加灵活、可靠的IT基础设施。
|
缓存 监控 NoSQL
Redis性能监测与故障排除:保障稳定性与优化性能
本篇深入探讨了如何监测Redis性能、使用性能分析工具优化性能,以及排除常见故障的方法。我们首先介绍了通过Redis的INFO命令获取服务器状态和性能信息,为实时监测提供了手段。进一步地,我们探讨了使用--latency选项的redis-cli工具来检测Redis命令延迟,帮助用户了解性能瓶颈。
647 0
|
运维 安全 数据库
渗透攻击实例-系统/服务运维配置不当
渗透攻击实例-系统/服务运维配置不当
|
SQL 存储 JavaScript
常见系统质量安全性问题相关解决方法
1. SQL注入文件写入(需要用户验证) 解决办法:通过建立过滤器方法,对所有用户输入信息进行清理过滤。通过清理过滤用户输入所包含的危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的Javascript代码、运行各种操作系统命令等。
386 0
下一篇
无影云桌面