iOS总结-性能优化-卡顿优化

参考 https://github.com/stickToTheStruggle/iOS-Performance-Optimization

关于性能优化,说实话涉及面真的太大,我只能通过自己的学习和理解来进行总结.

总体分为卡顿优化、布局优化、电量优化、启动优化、体积优化(瘦身)、网络优化、编译优化以及对应的APM的实现.

我也是站在巨人的肩膀上,对有些问题进行学习总结.

卡顿原因

    卡顿大概有三个特征:FPS降低/CPU占用率很高/主线程Runloop执行了很久,可以分为主线程卡顿和UI卡顿,针对卡顿,我们需要针对性的进行监控.

    对主线程卡顿的监控的原理

    iOS总结-性能优化-卡顿优化_第1张图片

 其实前面runloop的文章我也介绍了有关内部实现的原理,这里就是利用runloop对于事件的处理只要就是在kCFRunLoopBeforeSources和kCFRunLoopBeforeWaiting状态之间,还有kCFRunLoopAfterWaiting之后。我们可以对两个状态进行监控,如果消耗事件太久,代表卡顿发生。  对卡顿次数做一个判断,如果次数为1,但时间超时,则为单次耗时较长的卡顿,如果次数到达阀值,证明连续短时间卡顿。为了定位,会收集当时的一个堆栈情况,在此你可以使用PLCrashReporter,参考这个.

参考:http://www.cnblogs.com/gatsbywang/p/5555200.html

 

你可能感兴趣的:(ios性能优化)