1、前提条件

在appstore中下载安装xcode

2、打开方式

3、页面元素介绍

3、电脑连接手机选中要测试的app

4、选中要测试哪项,双击进去,点击开始进行监控测试

5、主要介绍一下三项

第一个:Core Animation(核心动画) 

Core Animation工具是用来检测Core Animation性能的,我主要用来看fps(一秒钟渲染多少帧 Frame Per Second = FPS),也就是滑动时查看界面是否卡顿。

一般FPS是60左右,过于低的话需要进行优化,当低于45时,用户一般是可以觉察到卡顿的,当低于20时,卡顿是特别明显,甚至影响使用了(之前测试过个位数fps,那感觉想让我摔手机)。

举例如图:

当停止不动时,fps为0.开始滑动时,fps会不断变化。

 
 

PS:这里测试界面卡顿,还有另一种更便捷的方法,借助第三方封装的一个label,可以在界面实时看到fps,而不需要借助Instruments。

下载地址:Github地址

第二个:Leaks(内存泄露)

这个也比较常用,用来查看app运行期间,那些代码产生内存泄露。

内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

 
 
 
 
 
 

PS:如果找不到,可能移到底部区域了,如下图:(xcode新版本会这样布局)

 
 

其中,绿色勾表示运行正常,没有内存泄露,如果有泄露,会自动显示❌,下面我找一张有泄露的图

 
 

按照我上面的方式设置完,点击❌,会定位到代码处,我们就能看到具体大概到代码位置了,然后对应去修改。

PS:这里我讲一点可能很多人没注意到一个点,就是关于AFNetworking3.0下存在的内存泄露。

如果你在每次使用时,都是重新

AFHttpSessionManager *sessionManager = [AFHttpSessionManager manager];

可能就会有这种问题,不管你是直接使用,还是封装后使用,只要用的时候是每次都申请一下sessionManager,就会有这种问题。

解决办法就是:对sessionManager进行单例处理,就可以避免。

参考文章戳这里:

AFNetworking3.x容易出现内存泄露的地方

利用Instruments中的Leaks处理内存泄露

第三个:Time Profiler(时间分析器)

用来检测app中每个方法所用的时间,并且可以排序,并查找出哪些函数占用了大量时间。

页面如下:

 
 

我测试等demo内容比较少,所以数据不多,测试的时候,勾选右边红框

Separate by Thread:每个线程被单独考虑。这能让你知道哪一个线程占用CPU最多。

Invert Call Tree:选中该选项后,调用栈会自上至下显示。这通常是你需要的,因为你想知道CPU花费时间的那个最深的方法。

Hide System Libraries:选中该选项后,只有你自己app中出现的符号会被显示出来。

然后就可以分析代码各阶段或者具体代码分别执行多长时间了。

最新文章

  1. C++程序员如何转Java
  2. [从产品角度学EXCEL 00]-为什么要关注EXCEL的本质
  3. 小菜学习Winform(一)贪吃蛇
  4. JS 获取url参数
  5. IO流-字节输出流OutputStream异常处理
  6. Stealth视频教程学习笔记(第一章)
  7. [Linux] ubuntu安装配置vsftpd并锁定目录
  8. [转]使用EasyRsa3为OpenVPN生成密码
  9. IOS DLNA开发(CyberLink和PlatinumKit)
  10. TextView之一:子类的常用属性
  11. Javascript模块化编程之难处
  12. shell统计文本中单词的出现次数
  13. StackExchange.Redis学习笔记(三)
  14. 桶排序/基数排序(Radix Sort)
  15. 自定义的jdbc连接工具类JDBCUtils【java 工具类】
  16. Centos安装php php-fpm 以及 配置nginx
  17. LeetCode(509. 斐波那数)
  18. 基础_cifar10_序贯
  19. StringUtils一些常用方法
  20. windows 中 到底是用的哪个java.exe??? 删除了PATH变量的Java设置还是可以运行java.exe windows/system32

热门文章

  1. SQL Server 2017 安装问题
  2. for循环和增强for循环
  3. PHP核心配置详解
  4. TextView和Button的学习
  5. cuda cudaTextureFilterMode
  6. 踩一踩win7安装neo4j的坑
  7. Window Jdk配置(win7/win10都可以)
  8. 微信官方小程序示例demo 微信开发者工具打开不显示云开发按钮
  9. 编写shell脚本,使用 nohup 让springboot 项目在后台持续运行
  10. Express+MySQL实现图片上传到服务器并把路径保存到数据库中