zoukankan      html  css  js  c++  java
  • 卡顿问题

    导致卡顿问题的几种原因:

    • 复杂 UI 、图文混排的绘制量过大;

    • 在主线程上做网络同步请求;

    • 在主线程做大量的 IO 操作;

    • 运算量过大,CPU 持续高占用;

    • 死锁和主子线程抢锁。

    FPS 是一秒显示的帧数,也就是一秒内画面变化数量。当FPS达到60,说明界面很流程,当FPS低于24,页面流畅度不是那么流畅。

    线程的消息 事件是依赖于 NSRunLoop 的,所以从 NSRunLoop 入手,就可以知道主线程上都调用了哪些方 法。我们通过监听 NSRunLoop 的状态,就能够发现调用方法是否执行时间过长,从而判断出是 否会出现卡顿。

    RunLoop 这个对象,在 iOS 里由 CFRunLoop 实现。简单来说,RunLoop 是用来监听输入源,进 行调度处理的。这里的输入源可以是输入设备、网络、周期性或者延迟时间、异步回调。

    RunLoop 会接收两种类型的输入源:

    • 一种是来自另一个线程或者来自不同应用的异步消息;

    • 另一 种是来自预订时间或者重复间隔的同步事件。

  • 相关阅读:
    c++11 static_assert
    UVA
    析构函数与运行错误
    UVA
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) C. Coconut
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) A. Banana
    DOCTYPE的作用?
    数组去重的方法
    闭包的分析?
    SVN(集中式管理)分析
  • 原文地址:https://www.cnblogs.com/KL2016/p/14751498.html
Copyright © 2011-2022 走看看