可根据你所知道的操作原理,进行获取数据跟工具进行对比,这样就可知道工具的可靠性,也便于后续你的使用,只要设计原理正确,基本数据就正确了 工具是用什么原理来获取数据呢? shell top -d 1 | grep 包名 获取cpu和获取手机是几核,然后进行相除,来知道cpu百分比,这就是为什么早期的版本cpu会100+,而现在的版本不会超过100% 流量: 获取被测app adb shell dumpsys activity activities | grep intent 获取 手机电量跟温度: 通过adb shell dumpsys battery 获取 测试 app电量:(用于》=5.0系统) 通过adb shell ps | grep 包名,获取UID,然后输入 adb shell dumpsys batterystats “包名 工具只在win10 64位测试,但其他同学在win7 64位也可以运行 4.这工具展示这样是不是有问题等。。。。。。
1 基础性能分析 CPU:表示进程或线程的繁忙程度 内存:表示当前进程内存的使用情况 流量:表示当前进程网络的使用情况 流畅值:表示当前应用的流畅程度 ? 图:基础性能检测的结果 2 卡顿检查分析 低流畅值区间:流畅值低于40帧/s的区间(正常绘制间隔为16.7ms即60帧/s) 单次大卡顿:当两次绘帧间隔大于70ms,相当于丢了4帧以上的区间 图:卡顿区间的代码定位 3 页面测速分析 Activity测速:包括Activity的冷/热启动、生命周期、绘制信息、卡顿信息、页面平均流畅值,启动时长等。 View绘制深度:View的绘制深度决定着当前视图的复杂度,复杂度越高,越容易引起卡顿。 测试简单,操作便捷,最多30分钟的测试时间,您就可以从多种维度,用不同的视角,全面了解您的应用!后续我们也将奉上详尽的原理讲解,溯本求源,让大家更深入了解这些功能的实现原理。
代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!
| 导语 最近组里在做性能优化,既然要优化,就首先要有指标来描述性能水平,并且可以检测到这些指标,通过指标值的变化来看优化效果,于是笔者调研了iOS APP性能检测的一些方法,在此总结一下。 包含了很多强大的检测功能:其中包括在真机和模拟器上进行性能测试,对APP进行性能分析,检查一个或多个应用或进程的行为。 :收集使用时间或基于事件的抽样方法的性能监控计数器(PMC)事件 8.Energy Log: 耗电量监控 9.File Activity :检测文件创建,移动,变化,删除等 10.Leaks(泄漏): SDK具体统计了什么有可能我们并不完全知道,这又涉及一个很重要的问题就是安全性,这些SDK涉及的统计数据都是APP的商业机密信息,对于有一定市场影响力的APP肯定会顾忌这一点。 而且还有一个问题,在代码中检测APP的性能本身可能也会带来额外的性能损耗,这也是需要考虑和权衡的。 自行添加检测代码也大体分为两类: AOP:采用切面的方式,统一的为大量的类增加检测代码。
PerfDog是一个移动全平台Android/iOS性能测试、分析工具。可以快速定位分析性能问题。手机无需ROOT/越狱,手机硬件、游戏及应用APP也无需做任何修改,极简化即插即用。 高效解决Android & iOS性能测试分析难题。 数据准确性: 工具本身对测试设备CPU的性能影响<1%,帧率无影响。保证了性能数据准确真实性。 应用广泛性: 支持所有APP应用、游戏、小程序、小游戏、H5、web等,性能测试一个就够了。 工具易用性:无需安装,即插即用,减少繁琐的测试障碍,让您的精力集中投入到测试分析中。 监控应用使用的能耗情况(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。 和Xcode Energy Impact结果一致。 批注及标定 在性能测试过程中,我们可能需要添加标记点来记录执行过程中的关键点。在Perfdog中添加标记的操作如下: 鼠标左键双击,则可以自定义添加批注。 左键双击已生成的批注,则取消。
一帧就是一副静止的画面,连续的帧就形成动画,我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的数量,也可以理解为图形处理器每秒钟能够刷新几次。 引起丢帧的原因非常多, 有硬件层面的 , 有软件层面的 , 也有 App 自身的问题. 帧延迟的高低可以通过帧时间(Frame Time)来判定。 并且在设置-开发者选项-监控-GPU呈现模式分析-勾选上In adb shell dumpsys gfxinfo ? 在PC上打开cmd窗口,启动待测应用。 执行测试 使用如下命令可以获取设备当前打开的应用包名。 Draw +Prepared+ Process + Execute = 完整显示一帧的时间 ,这个时间要小于16ms才能保证每秒60帧。
功耗 功耗,通俗的理解即电流通过导体使设备运行,导体本身的电阻将电能转换为热能的过程,因此,通常功耗测试也叫电量测试。 耗电量测试是指测试App在运行过程中消耗的能量。 硬件工具 基于基于硬件的测试方案,使用用电量表来测试手机耗电量。该方法优点是测试比较精准,同样缺点也很明显缺点:采购成本高,测试的是整个手机,不是被测APP,测试时要减少系统本身和其他app的干扰。 不能给出进一步参考,比如具体哪个app方面消耗电量比较多。 断开设备与电脑的连接,以便只从设备的电池中消耗电流,然后执行指定的App进行相关操作。 查看单个进程电量消耗数据 在App Selection中选择指定的App进程,即可查看该进程的耗电数据。 ?
当前APP网络环境比较复杂,移动运营商网络有2G、3G、4G、5G网络,甚至未来的6G网络,以及越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异,都会对用户使用App造成一定影响。 另外,当前App使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。如果App没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。 因此App网络测试,特别是弱网测试尤为重要。 网络测试要点 ? Reliability :指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。 Stability :连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。 5G的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。
FPS.gif 示例Github:WSL_FPS FPS :Frames Per Second 的简称缩写,意思是每秒传输帧数,可以理解为我们常说的“刷新率”(单位为Hz);FPS是测量用于保存、显示动态视频的信息数量 每秒钟帧数愈多,所显示的画面就会愈流畅,fps值越低就越卡顿,所以这个值在一定程度上可以衡量应用在图像绘制渲染处理时的性能。 CADisplayLink 简介:https://www.jianshu.com/p/434ec6911148 初始化CADisplayLink,监测FPS值的代码如下: _displayLink = nil) { self.FPSBlock(fps); } //1秒之后,初始化时间和次数,重新开始监测 _beginTime = link.timestamp; 悬浮图的实现是利用了UIWindow的特性来实现的。
该工具可以用来测试安卓APP专项测试中的流量,内存,cpu,fps等测试项 一、该工具使用环境: 需要安装JDK和SDK,并且配置环境变量才可使用; 测试设备安卓系统要>=5.0系统以上 关闭电脑上关于百度助手 ,手机助手等占用adb端口的软件 二、手机通过USB先连接电脑,连接好后,输入adb devices,会显示连接的设备(注:电脑只连接1台手机) 三、点击性能监控程序,展开的页面,其中设备号不用填写,因为只连接 1台手机,对于网络类型,如果手机WIFI网络就不用选择,如果是蜂窝数据也就是移动数据,那就要选上,然后在根据要监控的参数进行选择,选择后,在输入包名,包名的获取这边就不说明,再怎么不懂找开发 ? 其中:关于红色字体显示分为两部分,其中fps,就是当>=16.6的时候,会显示红色,也就是可能需要性能优化的地方,另外一个地方就是显示当前操作页面的Activity,不是该测试包的会显示红色,其他还有一个要说的网速 ,就是时刻检查当前app网路速度,这个对测试流量或者平常app刷新不出来,可以直接判断出来; 五、点击停止,会统计出操作多久耗费的流量多少,如下图; ?
可能很多人都不是做APP开发的,但这个工具非常有用,可以推荐给做APP的朋友,一定会帮到他 腾讯开源了一个APP调试平台 - GT GT(简称随身调)是可以直接运行在手机上的“集成调试环境” 功能特点 (1)使用方便 只需一部手机,无需连接电脑,即可对APP进行快速的性能测试 (2)监控信息全面 可以监测多项性能指标,如:CPU、内存、流量、电量、帧率/流畅度等等 (3)可以查看开发日志、 Crash日志 (4)抓取网络数据包 (5)调试APP内部参数 (6)真机代码耗时统计 (7)提供了API,可以自定义开发特殊功能 使用方式 iOS版是一个Framework包,必须嵌入APP 工程,编译出带GT的APP才能使用;iPhone和iPad应用都能支持 Android版直接安装GT APP即可使用,例如: (1)手机中安装 GT.apk (2)打开GT,选择一个已安装到手机的 APP做为被测应用 (3)选择被测APP关注的性能信息,如CPU、内存、流量 (4)启动被测应用,被测应用界面会出现监控信息悬浮窗 (5)悬浮窗中有按钮可以开启和停止数据采集 (6)可以在手机中查看监控信息
一、环境准备 访问插件下载网址http://jmeter-plugins.org/downloads/all/,点击下图“红框”处就能下载。 ? 前三个是jmeter扩展插件,解压后将jar拷贝包到jmeter的lib/ext目录下,最后一个是服务器监控插件,解压到服务器上。 将ServerAgent-2.2.1.zip解压后放在需要监控的服务器上,并执行chmod 777 startAgent.sh 赋权. /startAgent.sh 执行 重启jmeter即可 (依据自己的脚本,选择需要使用的~~ 我主要是用到了监听器中的一些图形报告:吞吐,响应时间,服务器资源监控) 三、开启监控 ?
来源:http://www.51testing.com 当应用实现了新功能后,准备发布版本前,必须进行性能测试以确定没有性能问题,内存使用情况便是其中必须要测试的性能之一。 现在从内存测试流程、内存测试方法、内存占用的评判建议三个方面总结如下,希望能提升内存测试的有效性。 内存测试流程 1)代码:保证没有附加多余的Log和调试用组件 2)测试场景:新开发的功能,只需要对该功能进行性能测试,因此测试场景包括该功能的开启前、运行、结束后等测试点;另一类是整体性能,考察应用的常见场景 ,在综合使用情况下的性能指标,测试场景应当包括启动后待机、切换到后台、执行主要功能以及反复执行各功能。 内存占用评判建议 通过性能监控工具进行性能评测时,得出的结果不知道内存cpu波动是否在预期之内,不懂得如何评估。
最近,需要对业务上的一些性能做一些优化,比如降低首屏时间、减少核心按钮可操作时间等的一些操作;在这之前,需要建立的就是数据监控的准线,也就是说一开始的页面首屏数据是怎样的,优化之后的数据是怎样,需要有一个对比效果 performance Performance 接口可以获取到当前页面中与性能相关的信息。 ,它包含了各种与浏览器性能有关的时间数据,提供浏览器处理网页各个阶段的耗时。 (2)performance.navigation.redirectCount: 该属性表示当前网页经过了多少次重定向跳转。 总结 因此根据图上的解释,封装了一个计算页面性能监控的基于performance的函数,用于返回性能数据。 可以根据自己的需求,在适合的时机执行函数,得到你需要的间隔时间duration。
一,什么是XHProf XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。 一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。 在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。 基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。 前面我们说过了,XHProf自身带有一个web版的测试工具,里面还有一个小例子。
移动测试、 Android测试 、APP测试 ---- Android篇 1. 性能测试 Android性能测试分为两类: 1、一类为rom版本(系统)的性能测试 2、一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1、资源消耗 2、内存泄露 3、电量功耗 迫使每个应用程序使用较小的内存,移动设备非常有限的RAM就能使比较多的app常驻其中。 android app的FPS工具 Gfxinfo 查看app绘制性能工具 1.6 响应时间篇 理解: 1)从单击事件触发到容器启动NativeAPP消耗的时间(埋点) 2)NativeAPP完整启动消耗的时间 启动时间测试 (安卓Activity启动过程性能剖视: http://www.rudy-yuan.net/archives/59/) 应用的启动时间的测试,分为三类: 1)首次启动 --应用首次启动所花费的时间
CPU使用率是性能测试是一项重要指标,CPU占用过高会使得设备运行程序出现卡顿与发热,甚至出现应用程序Crash,影响用户体验。在排除硬件环境的限制下,应用程序应该尽可能少的占用CPU。 iOS测试利器-Instruments Instruments简介 Instruments 是 Xcode 的一个工具集,为我们提供了强大的程序性能分析及测试能力。 检查设备相关的功能,比如:Wi-Fi、蓝牙等。 在真机或模拟器上进行性能测试。 创建自定义的 DTrace 来分析系统以及应用的各种行为。 跟踪源码中的问题。 对 App 进行性能分析。 查找 App 中的内存问题,比如:内存泄露(Leaked memory)、废弃内存(Abandoned memory)、僵尸(zombies)等。 进行系统级别的问题定位。 CPU占用率测试 使用Time Profiler可以来监测CPU使用统计信息,如下图所示选择选择点击红色按钮运行后,就能得到 CPU 性能的结果了。 ?
应用启动是整个App工序的第一道流程。对于开发者,一般需要在应用启动过程中进行初始化工作,启动页的UI展示。而对于用户来说,启动速度的快慢则极大地影响了使用体验,并且间接地影响了用户的留存率。 一般测试过程中更多的关注冷启动时间。 Android 启动时间 App启动流程 开发应用的时候,一般会指定一个 mainActivity,可以使用命令aapt dump badging [pkg name] | findstr launchable-activity Time profile 我们还可以使用time profile,该工具是xcode中Instruments中的一个测试工具,可以用来测试函数耗时。 2、选择指定设备和应用点击开始执行即可查看各个函数的消耗时间。 ?
腾讯客户端性能分析(QAPM)是腾讯云研发的一款面向移动APP的应用综合性能管理平台,简单易用,提供贯穿研发流程内外的性能监控服务,打造发现、定位、解决、度量的一站式性能优化体验......
扫码关注云+社区
领取腾讯云代金券