优化工具的使用

一个应用性能的好坏并不能依靠我们的主观意识去评判,必须要看数据说话,因此必须要了解和学会使用各种性能测试工具才知道问题出在哪以及具体的优化方向。下面对我对性能优化的理解以及在性能优化过程中使用到的一些工具作个介绍。

零 性能指标

Android的应用性能的指标主要有:

  • 布局复杂度:布局复杂会导致布局需要更长的时间,从而导致进入应用慢、页面切换慢;
  • 耗电量:耗电量大会导致机器发热、缩短机器的有效使用时长;
  • 内存:内存消耗大会导致频繁GC,GC时会暂停其它工作,导致页面卡顿;内存泄露会导致剩余可用内存越来越小;内存不足会导致应用异常;
  • 网络:频繁的网络访问会导致耗电和影响应用的性能;网络交互数据大小会影响网络传输的效率;
  • 程序执行效率:糟糕的代码会严重影响程序的运行效率,UI线程过多的任务会阻塞应用的正常运行,长时间持有某个对象会导致潜在的内存泄露,频繁的IO操作、网络操作而不用缓存会严重影响程序的运行效率。

一 Android官方性能优化工具介绍

android针对上面这些会影响到应用性能的情况提供了一些列的工具:

1 布局复杂度:

  • hierarchyviewer:检测布局复杂度,各视图的布局耗时情况:

  • Android开发者模式—GPU过渡绘制:

2 耗电量:Android开发者模式中的电量统计;

3 内存:

  • 应用运行时内存使用情况查看:Android Studio—Memory/CPU/GPU;

  • 内存泄露检测工具:DDMS—MAT;

4 网络:Android Studio—NetWork;

5 程序执行效率:

  • 静态代码检查工具:Android studio—Analyze—Inspect Code.../Code cleanup... ,用于检测代码中潜在的问题、存在效率问题的代码段并提供改善方案;
  • DDMS—TraceView,用于查找程序运行时具体耗时在哪;
  • StrictMode:用于查找程序运行时具体耗时在哪,需要集成到代码中;
  • Andorid开发者模式—GPU呈现模式分析。

6 程序稳定性:monkey,通过monkey对程序在提交测试前做自测,可以检测出明显的导致程序不稳定的问题,执行monkey只需要一行命令,提交测试前跑一次可以避免应用刚提交就被打回的问题。

7 Profiling与Lint检测性能

说明:

二 第三方性能优化工具介绍

除了android官方提供的一系列性能检测工具,还有很多优秀的第三方性能检测工具使用起来更方便,比如对内存泄露的检测,使用leakcanry比MAT更人性化,能够快速查到具体是哪存在内存泄露。

  • leakcanary:square/leakcanary · GitHub,通过集成到程序中的方式,在程序运行时检测应用中存在的内存泄露,并在页面中显示,在应用中集成leancanry后,程序运行时会存在卡顿的情况,这个是正常的,因为leancanry就是通过gc操作来检测内存泄露的,gc会知道应用卡顿,说明文档:LeakCanary 中文使用说明LeakCanary: 让内存泄露无所遁形
  • GT:GT Home,GT是腾讯开发的一款APP的随身调测平台,利用GT,可以对CPU、内存、流量、点亮、帧率/流畅度进行测试,还可以查看开发日志、crash日志、抓取网络数据包、APP内部参数调试、真机代码耗时统计等等,需要说明的是,应用需要集成GT的sdk后,GT这个apk才能在应用运行时对各个性能进行检测。
  • iTest:iTest,业内首创的Android自动化性能监控工具,它能够记录特定应用的性能消耗情况,包括cpu、内存、流量、电量等信息,支持浮窗实时查看应用的具体信息,iTest不需要集成sdk到应用中,在itest中选中需要测试的应用即可进行测试;
  • Emmagee:Emmagee下载NetEase/Emmagee · GitHub,网易开发的性能检测工具,Emmage和iTest一样,不需要在应用中集成sdk,能够对应用的常用性能指标进行检测,并以csv的格式保存方便查看应用的各项参数;
  • APT:Tencent/apt | CODE,腾讯出的,暂时还没使用过,无法评价。
  • FPSService:百度一位开发者写的帧率测试工具,需要集成到应用中才可查看:

三 应用性能优化资料推荐

来自为知笔记(Wiz)

时间: 2024-10-09 21:56:40

优化工具的使用的相关文章

【更新】【封装必备】封装辅助 - 清理&优化工具 For Win7(IT天空会员专版)

https://www.itsk.com/thread-353560-1-4.html nqawen 发表于 2015-7-9 17:26:37   本帖最后由 Amz 于 2015-11-25 10:07 编辑 [运行界面预览]<ignore_js_op> <ignore_js_op> <ignore_js_op> [介绍]曾经看到有些兄弟封装win7系统,清理优化类工具多达十来种,本人也玩封装,常用的工具就是Dism++ ,然后就是本人之前发过的 封装辅助 - 减肥

汇编优化工具

/* 汇编优化工具 使汇编代码更具可读性,并提高汇编速度 优化15000行大约需要30秒 */ import rfile.h main { name=getsl s=rfile.read_all_n(name) s=s.replace('\n','\r\n') s=s.replace('dword esp','esp') s=s.replace('dword ebp','ebp') s=s.replace('dword edi','edi') s=s.replace('dword esi','e

Android APK优化工具Zipalign详解

最近在googl play上发布apk要优化 Android SDK中包含一个"zipalign"的工具,它能够对打包的应用程序进行优化.在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率.因此,这种方式能够让应用程序和整个系统运行得更快.我们强烈推荐在新的和已经发布的程序上使用zipalign工具来得到优化后的版本 一.这里下载android SDK,只为了用他的zipalign工具,当然什么时候大家有兴趣了用来开发两个小程序也是很简单的 A

SqlServer性能检测和优化工具使用详细

原文:SqlServer性能检测和优化工具使用详细 工具概要 如果你的数据库应用系统中,存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等等,又性能低下,而苦逼的你又要对其优化,那么你该怎么办?哥教你,首先你要知道问题出在哪里?如果想知道问题出在哪里,并且找到他,咱们可以借助本文中要讲述的性能检测工具--sql server profiler(处在sql安装文件--性能工具--sql server profiler) 如果知道啦问题出现在哪里,如果你又是绝世高手,当然可以直中要害,写

mysql 优化工具

explain  profiling 建议提供以下信息 show table status like 'audit';show create table audit;show index from audit;check table audit; analyze table audit; analyze 并不检查表是否有问题,只是重新分析一下键的分布情况.check table/ repaire table 是检查和修复的语句 SELECT * FROM [TABLE] FORCE INDEX

PHP性能优化工具–xhprof安装

PHP性能优化工具–xhprof安装,这里我先贴出大致的步骤: 1.获取xhprof 2.编译前预处理 3.编译安装 4.配置php.ini 5.查看运行结果 那么下面我们开始安装xhprof工具吧: 1.获取xhprof 可以输入网址直接下载,或者wget 1 2 3 4 #wget http://pecl.php.net/get/xhprof-0.9.4.tgz #tar zxf xhprof-0.9.4.tgz 2.编译前预处理 在编译xhprof之前,先做一下预处理,生成configur

[Oracle] - 性能优化工具(5) - AWRSQL

在AWR中定位到问题SQL语句后想要了解该SQL statement的详细运行计划,于是就用AWR报告中得到的SQL ID去V$SQL等几个动态性能视图中查询,但发现V$SQL或V$SQL_PLAN视图都已经找不到相应SQL ID的记录,一般来说这些语句已经从shared pool共享池中被替换出去了. 这个时候我们能够尝试使用DBMS_XPLAN.DISPLAY_AWR存储过程来将Oracle Automatic Workload Repository自己主动负载仓库中记录的SQL语句相关信息

[Oracle] - 性能优化工具(1) - AWR

AWR快照 默认情况下,Oracle每隔一小时会自己主动产生一个快照,保存近期8天的快照. 我们能够通过例如以下语句获得产生快照的时间间隔和保存的天数: [email protected](lx15)> select SNAP_INTERVAL,RETENTION from dba_hist_wr_control; SNAP_INTERVAL RETENTION -------------------------------------------------------------------

[Oracle] - 性能优化工具(3) - ADDM

ADDM 通过检查和分析AWR获取的数据来判断Oracle数据库中可能的问题,并给出优化建议. 获取ADDM的方法如下: @?/rdbms/admin/addmrpt.sql 下面可以看一个例子: --第一步:创建测试用的表 drop table t cascade constraints purge; create table t AS SELECT * FROM dba_objects ; --第二步:快照 exec dbms_workload_repository.create_snaps

6.0、Android Studio性能优化工具

显示图像包含四个步骤.简单来说,CPU对比显示列表,GPU渲染图片显示,内存存储图片和数据,电池提供点力能源.每个部分的硬件都有限制,超过这个限制会导致应用运行较慢,显示性能差,或者耗电. 为了查找造成这些问题的原因,你需要深层的查找原因,使用工具来收集你的应用执行时的数据.用列表和图像的方式呈现,进行理解和分析,从而优化你的代码. Android Studio和你的设备提供了优化工具来记录和可视化你的应用渲染,计算,内存和耗电量情况. 注意:当你使用优化工具时,需要禁用Instant Run.