Android--app性能问题的总结(一)
一个应用程序的性能问题体现在很多方面,app的性能问题,很大程度上决定了使用app的用户量,如果正在使用app的过程中出现app崩溃、卡顿半天加载不出数据(跟网络也有一定的关系)、用户请求事件半天获取不到相应的数据,则用户的内心都崩溃了,前期的性能问题导致的用户流失,从而降低品牌口碑使CPA(每用户获取成本)提高,因此作为测试人员,我们有义不容辞的责任在早期尽量多的爆出app性能问题,检测性能问题的方式:1、凭个人直观感受,下面将大概列举了几类,2、使用性能测试工具,如:腾讯的gt、腾讯的wetest(wetest主打测试游戏的性能,但是也可测试一般应用的性能,使用:客户端性能测试---通用性能测试,可得到具体的测试报告,包括cpu占用率、pss、fps等等),性能问题不达标及时督促研发进行性能优化,更好的提升app的性能,不过值得注意的是,不是所有的性能问题都是必须进行优化的,应根据实际情况评估是否需要优化,比如:不成熟的优化更容易带来伤害,实现上的问题可以通过后期的修改进行优化,遍布全局并且限制性结构上的缺陷是不容易被修改的,除非重构,因此作为开发应该在开始时就注重代码结构的设计。
一、作为测试人员, 以下是凭个人直观感受就可以来判定app的性能问题包括:
1、应用程序第一次启动速度慢
2、进入到某一个界面加载速度慢
3、启动某一个有动画效果的界面,动画执行过程加载速度慢并且有卡顿
4、Listview列表滑动的过程中有卡顿、不流畅
5、应用程序自定义的某特定界面执行速度慢
6、如launcher应用界面左右滑动时效果不平滑,出现较慢的卡顿
7、响应某一个用户事件时,长时间无响应(ANR)
8、操作数据库时,执行大量数据的增删改查操作,执行速度较慢
9、应用长时间后台运行后,随机出现卡顿现象
10、太占用手机内存
11、太耗电和流量
12、在使用应用的过程中,点击某一个事件进入的页面出现白屏的闪动等
二、作为测试人员,即使我们不懂代码,也不太清楚开发的代码结构是如何,具体到参数的给定、方法的调用、内存的分配等等,不懂这些也没有关系,
但是我们应该了解app出现了性能问题,我们可以从哪些方面可以着手进行分析,从而提升我们对性能问题的定位,开发可考虑点列举如下:
1、分析有哪些函数单次执行时间长
2、分析哪些函数单次调用次数过多
3、分析哪些函数总执行时间长
4)查看某些特定类的特定方法
三、应用层的性能优化通常可以从以下几个方面考虑:
1. 了解编程语言的编译原理,使用高效编码方式从语法上提高程序性能;
2. 采用合理的数据结构和算法提高程序性能,这往往是决定程序性能的关键;
3. 重视界面布局优化,
4. 采用多线程、缓存数据、延迟加载、提前加载等手段,解决严重的性能瓶颈;
5. 合理配置虚拟机堆内存使用上限和使用率,减少垃圾回收频率;
6. 合理使用native代码;
7. 合理配置数据库缓存类型和优化SQL语句加快读取速度,使用事务加快写入速度;
8. 使用工具分析性能问题,找出性能瓶颈;
决定程序整体性能的仍然取决于程序的业务逻辑设计、代码的数据结构和算法
1.作者:Syw 2.出处:http://www.cnblogs.com/syw20170419/ 3.本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 4.如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?