iOS直播优化方案

作者: 宋唐不送糖 | 来源:发表于2018-08-01 16:22 被阅读26次

看了许多直播优化的方案,写此文记录一下,涉及少分部服务端方案,不涉及具体代码。


具体方案分为三个部分:

1、直播大厅的优化。
2、直播间内的优化。
3、私信消息模块的优化。

直播大厅的优化:

直播列表的刷新

问题:

1、作为App的入口,其高可用性十分重要。
2、用户点击进入直播间后,发现直播已经结束,体验不好。
3、主播们的及时露脸、吸引粉丝的需求。

方案

1、多种刷新机制相结合

  • 全量刷新。
  • 顶部刷新,按滑动屏幕的偏移量。
  • 局部刷新,对直播流进行分组,只更新用户当前界面的直播流,便于服务端实施缓存策略。
  • 刷新的时间间隔可配置。

2、用户体验方面

  • 用户当前正在滑动屏幕时,延迟刷新当前页面。

进入直播间速度的优化

常见现象:

1、用户点击某个直播之后,进入直播间页面较慢。
2、直播间内的视频迟迟加载不出。
3、主播开播后反映人气一直上不去。

原因分析:

1、获取视频流时建立网络连接的耗时。
2、直播间内业务模块众多,界面初始化耗时。

方案

  • 在直播间大厅预先解析视频流地址,从而加快获取视频数据的速度。
  • 对房间内部分UI模块使用懒加载方式,如:公聊、用户列表等。
B57D20E2-A3FB-4F5A-A689-612E60E8BA2E.png

直播间内的优化:

定时器事件调度

8CD488F8-576B-4EA7-805C-EF412CBD619C.png

房间内长连接消息的处理(公聊消息列表刷新)

问题现象:

热门直播间大量的公聊消息使得列表持续快速刷新,导致主线程CPU占用较高,影响整体页面交互。

优化思路:

  • 将处理长链接消息的SocketIO库中的block执行线程设置为非主线程,缓解主线程的CPU占用。 EC21793A-D738-48F7-A2D1-EF45CFD549BB.png
  • 实时统计单位时间内收到的消息数目,在性能较低的机型上,动态调整公聊列表的刷新频率。
  • 使用队列暂存消息,每条公聊消息到来时不直接刷新列表。
  • 批量地pop队列中的消息,只保留最近收到的一些消息进行滚动刷新。

动画流畅

问题现象:

大量的礼物动画如何进行流畅的展示。

优化思路:

  • 动画进行队列分优先级排列,对于同个时间段内的动画根据优先级高的的优先显示,其余可延迟或者抛弃动画显示。

主播端体验优化

问题现象:

主播直播了很久,好不容易上了热门,发生App崩溃如何处理。

优化思路:

  • 开始直播时保存推流地址信息, App崩溃后,再次启动可以继续直播,恢复效果上相当于一次切后台的操作。

问题现象:

如何应对运营活动时的房间内消息压力,短时间内服务器广播消息压力非常大,公聊和礼物消息持续刷屏,主播直播严重受干扰。

优化思路:

  • 服务降级,下发限制客户端公聊和礼物消息发送频率的命令。
  • 限制点赞和部分礼物的动画展示

减轻服务端并发请求方面的优化

问题现象:

1、用户关注关系的拉取:每次进入直播间,都需要请求用户列表中的关注关系;主播结束直播时,用户都需要拉取和主播的关注关系。
2、推送消息:明星用户开播全量推送时,大量客户端同时拉取大厅直播列表。

优化思路:

  • 对用户profile、关注关系等信息进行缓存。
  • 收到直播推送时,不立即刷新直播列表,延迟到退出直播间后再启动大厅刷新机制。

客户端首次启动方面的优化

问题现象:

用户安装App后首次启动,点击登录按钮出现卡顿。

原因分析:

需要下载大量的图片资源,网络请求和文件操作频繁。

优化思路:

  • 对部分礼物和等级图标资源进行内置,增量下载更新。

私信消息模块的优化:

D807EDF8-66E8-4A2C-96BE-11E549AE879F.png

问题现象:

私信聊天页面的打开速度和消息浏览的体验。

优化思路:

  • 内存中只缓存少量的几十条数据用于展示,滑动屏幕浏览时,动态更新缓存内容。

相关文章

  • UITableView 优化记录- 一年前的项目了

    直播APP公屏优化记录 标签(空格分隔): iOS 直播APP频道公屏优化方案一些心得(未完) 做类似映客这种AP...

  • iOS直播优化方案

    看了许多直播优化的方案,写此文记录一下,涉及少分部服务端方案,不涉及具体代码。 具体方案分为三个部分: 1、直播大...

  • iOS 性能优化

    参考文章 微信读书 iOS 性能优化总结 iOS性能优化 iOS 启动连续闪退保护方案 iOS代码性能优化《阶级篇...

  • iOS 性能优化二

    主要讲解界面卡顿原因/优化方案/离屏渲染 iOS 性能优化一iOS 性能优化二iOS 性能优化三 1. 开发中遇到...

  • 直播优化方案

    [如果觉得文章有用,可以支持一下放眼直播] 播放端优化实时性 参考我写的链接:ijkplayer丢帧的处理方案 流...

  • 关于IOS15后 推送系统语音播报无声解决方案(亲测可行)

    iOS15之前用之前那套方案就可以了,也可以在之前的那套方案进行优化,1.优化方案这篇作为参考https://de...

  • iOS启动优化-二进制重排

    启动优化常规方案 之前已经写过一期关于iOS启动优化[https://juejin.cn/post/6997344...

  • iOS优化方案

    iOS优化方案是个大的目标,可以细分为以下几点: 1.性能优化 2.架构优化 3.代码规范 4.线上监控 其中这几...

  • iOS优化方案

    好的app应该有好的性能流畅度,本篇文章就大概讲一下ios性能优化。 先来谈谈CPU和GPU 卡顿优化 -CPU ...

  • iOS优化方案

    启动速度,合并多个接口,越快越好,能延后的尽量延后。UI数据操作在子线程,处理完再回到主线程,不要堵塞主线程。处理...

网友评论

    本文标题:iOS直播优化方案

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