Xcode instruments 之 Time Profiler的使用
来源:互联网 发布:哪家ui培训好 知乎 编辑:程序博客网 时间:2024/05/26 22:56
之前测试的时候,好几个人就说过,用你们这个app,手机费电厉害,而且一会之后手机就会有些烫。当时由于该项目由几人维护,不敢乱改别人的代码。现在项目改组,自己用instruments检查过之后,发现cpu直奔100%~~
注意手机上要有运行过的app:
1、我们要先 command + shift +k ,clean下
2、运行下app,command + r
3、Xcode–> Product–> Profile (command + i 快捷键)调出instrument,选择Time Profiler,我们可以跟踪哪个方法最耗时间,以此来优化
然后可以看到如下
点击左边红色的圆点,开始录制,我们就能看到方法执行所需要的时间
我们可以看到[GBLoopView animateCurrentTickerString];这个方法最耗时间。我们点击有个向右的箭头,看下该方法
GBLoopView是干嘛的呢,是在项目首页有个广播的跑马灯,之前的代码是在viewwilldisapper中将该广播暂停,自己猜测,难道是即使暂停了,里面还有些动画还在执行?于是在animateCurrentTickerString中打断点,果然即使已经push到其他页面,该方法在不断的循环调用,之前有个字断是running 用来记录当前状态的,在主页viewwilldisapper中将其暂停running=NO,在animateCurrentTickerString添加个判断,这样即使push到其他页面,该方法也不会一直在调用了。但是我比较好奇的是即使我在主页将该GBLoopView 暂停并且移除掉,该动画还是一值在执行,不知道该原因是什么~~
看下修改完之后的cpu的占用率
我的这个最耗时的已经修改好了,当然还有其他可以优化的。
注意:我们看下有下角的☑️选项,对于我们很有帮组
Separate by Thread:按线程分开做分析,这样更容易揪出那些吃资源的问题线程。特别是对于主线程,它要处理和渲染所有的接口数据,一旦受到阻塞,程序必然卡顿或停止响应。
Invert Call Tree:反向输出调用树。把调用层级最深的方法显示在最上面,更容易找到最耗时的操作。
Hide System Libraries:隐藏系统库文件。过滤掉各种系统调用,只显示自己的代码调用。
Flattern Recursion:拼合递归。将同一递归函数产生的多条堆栈(因为递归函数会调用自己)合并为一条。
Top Functions:找到最耗时的函数或方法。
- Xcode instruments 之 Time Profiler的使用
- Instruments 使用技巧 Time Profiler
- Mac 性能优化Instruments之Time Profiler
- instruments 中 Time Profiler的使用说明
- Instruments- time profiler
- 【iOS测试系列】instruments工具的使用(二)- 通过Time Profiler
- Time Profiler的使用
- app性能优化之Time Profiler工具的使用
- app性能优化之Time Profiler工具的使用
- iOS 性能调试Instruments ->Time Profiler
- 关于xcode Instruments的简单使用
- 使用Xcode的Instruments检测内存泄漏
- xcode之instruments
- Xcode Instruments之概述
- Xcode Instruments之iprofiler
- Xcode instruments 之CPU
- Instrument 之 time Profiler
- 性能优化检测Instruments-time profile的使用
- 一步一步学MySQL---- 5 表的修改
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- sql中字符串被截断的问题调试
- Genymotion 解决虚拟镜像下载速度特别慢的问题
- 没有上司的舞会
- Xcode instruments 之 Time Profiler的使用
- 使用cocoapods导入第三方类库后头文件没有代码提示的情况
- JS windows.open打开窗口并居中
- cmd压缩和解压jar文件
- 【Poj】-3128-Backward Digit Sums(组合数)
- Unity Shader基础
- spring cache
- Linux下用c语言实现发送http请求
- JAVA中ListIterator和Iterator的详解与辨析