移动直播技术的极限优化与高效研发

在此,列出了在业务中需要做的点:

不管是从资源的加载,还是资源的使用,还是版本的覆盖,还是本身的前端的错误,这些都是要做的。如果这些都没有做,那么说明对业务的掌控是不够的,你不知道用户哪里出了问题。所以说监控是很重要的点, 现在有很多开源工具可以帮助你去做,也有很多现成的统计工具。

当然,监控不是最终目的,优化业务和提升业务才是。工具做好之后,就要去在监控中发现问题,最好是能主动发现问题,而不是被动的依靠用户投诉。

1.2、监控——视频流监控体系

在直播业务中,还有个很特别的东西就是视频流。因为它的特点是量很大,加载对用户的网络要求很高,在视频上面对视频流需要比传统的资源更细致的处理。需要去从它的加载、播放等各个方面做监控和完善。做完这些你才知道你的业务问题和瓶颈在哪里。然后再经过分析,就能知道要从哪里下手进行优化。

1.3、监控——机器性能指标监控体系

同时,刚才也有提到,业务对机器的性能要求越来越高。有很多的机器甚至可能根本没办法支持很高的FPS业务。性能对业务的影响非常大,同样的性能,A业务能跑起来,B业务如果跑不起来,用户的感觉就是B业务做得烂,团队很差。性能能够帮助建立业务的影响力和用户的口碑。

对于性能,其实也有很多办法可以去做监控,比如说给业务在机器上做性能的评分,通过评分能够知道机器到底是什么情况,用户的机器到底能承载多少FPS业务,再根据结果进行降级和升级优化。这就需要统计和分析用户到底是处在什么样的机器性能什么。还有给不同动画进行FPS归类、针对资源分类打包等等方式,都是监控性能比较好的方式。

1.4、监控——前端日志监控体系

刚刚也有提到,用户的环境非常复杂,这也是为什么说做前端要去细分到每个用户的原因。不像做服务端,机器上跑什么版本你是知道的,搞定这个版本怎么做就ok。但用户不一样,每个用户都是不同的,出了问题不一定能知道。在大量的数据情况下,是需要测试才能测出来的。因此,要对用户的实际情况进行监控,到底业务走到哪里了,没有走到的原因是什么?将这些信息全部收集上来。

2、监控体系的自动化

有了这么多监控方式,自然希望说它们能够自动化去处理。仅仅依靠人力,每个业务上线都去弄一遍,那很难跑下来,人力成本会十分恐怖。因此需要去做自动化的处理,能够实时的知道业务出了问题,问题出在哪。而且希望能够通过一些前端的染色,毕竟用户的网络其实也是有成本的,什么都上报,流量费用比其它业务高很多,用户可能会进行投诉,这就需要染色的能力。染色的能力就是说通过配置server去抓取你想要的用户出错信息。

3.1、业务优化实践——节点、场景优化

有了这些自动化之后,就要开始实践了。在业务中去实践的时候可以看到,一个页面的加载会分为很多流程。这些流程下面就是需要去针对细化的各个节点,并确定每个点到哪一步需要什么优化方案。还有在各种场景的细分和划分,针对这些场景进行优化。

3.2、业务优化实践——移动页面性能优化

对直播业务来说,移动端的业务量非常大。因此要学会充分利用性能工具来做事情,学会用工具作分析。同时要关注CPU变化趋势和GPU渲染能力。如果说实在通过H5已经解决不了问题了,就要适当去找你的环境,环境会提供很多native的能力,不管是用React-Native还是用原生native接口的方式,都只有一个目标,就是通过环境来帮助你业务可以更好的体验。

3.3、业务优化实践——图片资源优化

在直播行业,有两个资源比较重要,一个是视频,一个是图片。先看图片要怎么去做优化。