美文网首页
监控卡顿-Runloop

监控卡顿-Runloop

作者: 风车2017 | 来源:发表于2017-10-27 14:51 被阅读0次

1  对主线程Runloop注册一个回调函数runLoopObserverCallBack。在每次runloop的CFRunLoopActivity改变时回调。

2  开一个子线程。里面使用while循环不断dispatch_semaphore_wait等待主线程进入下一个CFRunLoopActivity时唤醒。(进入一个CFRunLoopActivity会调用dispatch_semaphore_signal)。

3 要是dispatch_semaphore_wait在50ms内没被唤醒。并且当前状态是kCFRunLoopBeforeSources或者kCFRunLoopAfterWaiting则认为是卡顿。卡顿次数加1。进入下一次循环。

4 当卡顿次数大于等于5次后,则使用PLCrashReporter打印当前堆栈信息。

参考:http://www.tanhao.me/code/151113.html/

相关文章

  • 常规优化技巧

    卡顿优化 添加Observer到主线程RunLoop中,通过监听RunLoop状态切换的耗时,以达到监控卡顿的目的...

  • 监控卡顿-Runloop

    1 对主线程Runloop注册一个回调函数runLoopObserverCallBack。在每次runloop的C...

  • Runloop监控卡顿

    一、监控卡顿的原理 1.1、原理 我们通过监听 NSRunLoop 的状态,就能够发现调用方法是否执行 时间过长,...

  • RunLoop 监控卡顿为什么要用kCFRunLoopBefor

    最近看了runloop应用中监控卡顿的一些博客,很多人都提到了通过kCFRunLoopBeforeSources和...

  • 利用 RunLoop 监控卡顿

    导致卡顿问题的几种原因: 复杂 UI 、图文混排的绘制量过大; 在主线程上做网络同步请求; 在主线程做大量的 IO...

  • 如何利用 RunLoop 监控 app 卡顿

    本文意义在分析如何利用runloop监控卡顿。代码可以看戴铭大佬的代码 卡顿问题的几种原因 复杂 UI 、图文混排...

  • 戴铭(iOS开发课)读书笔记:13章节-卡顿监控

    原文链接:如何利用 RunLoop 原理去监控卡顿? 前言 一个App想要提升用户体验最重要的就是 降低程序崩溃 ...

  • APM总结学习

    APM监控卡顿并上报有两种方案: 监听Runloop状态回调, 子线程ping主线程 开启do while 循环保...

  • RunLoop监控app卡顿

    本文意义在分析如何利用runloop监控卡顿。代码可以看戴铭大佬的代码 思路 首先思路就是利用CFRunloopO...

  • iOS通过runloop监控卡顿

    https://www.jianshu.com/p/ea36e0f2e7aehttp://www.tanhao.m...

网友评论

      本文标题:监控卡顿-Runloop

      本文链接:https://www.haomeiwen.com/subject/gsorpxtx.html