美文网首页
卡顿发生机理

卡顿发生机理

作者: 叶舞清风 | 来源:发表于2015-10-13 21:48 被阅读150次

顾名思义,卡顿就是应用运行不流畅的现象,给用户的直观感受就是点击屏幕操作有停顿、响应缓慢、界面卡死等。

iOS应用中,所有的UI操作以及更新,都是在主线程中完成,并且主线程的runloop是逐个处理用户事件的(当然其他的runloop也一样),所以主线程必须等待上一次事件处理完成后才能继续响应下一次事件。

( Runloop:是事件接收和分发机制的一个实现。Runloop提供了一种异步执行代码的机制,不能并行执行任务。在主队列中,Main RunLoop直接配合任务的执行,负责处理UI事件、定时器以及其他内核相关事件。RunLoop的主要目的:保证程序执行的线程不会被系统终止。Runloop工作的特点:

1> 当有事件发生时,Runloop会根据具体的事件类型通知应用程序作出响应;

2> 当没有事件发生时,Runloop会进入休眠状态,从而达到省电的目的;

3> 当事件再次发生时,Runloop会被重新唤醒,处理事件。

提示:一般在开发中很少会主动创建Runloop,而通常会把事件添加到Runloop中。)

在 iOS 应用启动后,系统会自动创建主线程并开始运行它的 runloop,监听处理分发事件,当没有事件发生时进入休眠状态,有事件发生时系统会将接收到的事件放在一个队列里,然后唤醒 runloop 依次处理事件。

绝大部分用户感知到的卡顿就是由于主线程阻塞了,在处理某次事件消耗了过长的时间,导致主线程处于等待状态,无法及时响应用户的下一次输入事件。

由于iOS 上的 UIKit 只能在主线程进行处理,导致开发者在开发过程中不经意间在主线程做了一些消耗时间的工作,导致了应用卡顿。

解决办法:充分利用好 iOS 的多线程,如 NSThread、NSO peration Queue,GCD 等干脏活,累活,让主线程能及时迅速的响应用户事件。

相关文章

  • 卡顿发生机理

    顾名思义,卡顿就是应用运行不流畅的现象,给用户的直观感受就是点击屏幕操作有停顿、响应缓慢、界面卡死等。 iOS应用...

  • 如何进行APP卡顿分析?

    1.如何定义发生了卡顿? 当出现 App的FPS平均值小于30,最小值小于24,说明安卓应用发生了卡顿。 2.卡顿...

  • iOS:卡顿延迟监测、界面启动耗时、界面FPS

    卡顿延迟监测 App在线运行的时候发生了卡顿,是很难定位卡顿原因的。 一般界面卡顿原因:1.死锁:主线程拿到锁 A...

  • Android高手笔记 - 卡顿优化

    如何定义发生了卡顿现象: 线下很难复现,与发生场景强相关(所以需要我们去做卡顿监控,收集现场信息) CPU相关知识...

  • iOS---性能优化

    项目中影响性能的主要有一下几方面:卡顿、耗电、网络、启动优化 一、卡顿 造成卡顿的原因是发生vsyn信号时,GPU...

  • (五)卡顿!卡顿!!卡顿!!!

    今天把3个Fragment的所有英雄头像加载之后,发现居然卡顿!而且还相当严重!!血崩。。。 原因排查: 图片放在...

  • 应用卡顿问题分析

    1.应用卡顿原理分析 卡顿问题的表现启动卡顿:启动白屏和启动动画卡顿运行卡顿:点击相应慢,列表滑动卡,动画卡顿 原...

  • 21-性能优化

    一、CPU和GPU 二、卡顿产生的原因和优化 卡顿优化-CPU 卡顿优化-GPU 卡顿监测 监控卡顿的demo:推...

  • Android性能优化-App卡顿

    目录 1.卡顿简介 2.检测Jank:介绍监测卡顿的方法 3.修复卡顿问题:介绍如何修复卡顿问题; 4.卡顿通常的...

  • 卡顿优化

    卡顿优化 - CPU 卡顿优化 - GPU 离屏渲染 卡顿检测 耗电优化

网友评论

      本文标题:卡顿发生机理

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