1.2、監(jiān)控——視頻流監(jiān)控體系
在直播業(yè)務(wù)中,還有個很特別的東西就是視頻流。因為它的特點是量很大,加載對用戶的網(wǎng)絡(luò)要求很高,在視頻上面對視頻流需要比傳統(tǒng)的資源更細(xì)致的處理。需要去從它的加載、播放等各個方面做監(jiān)控和完善。做完這些你才知道你的業(yè)務(wù)問題和瓶頸在哪里。然后再經(jīng)過分析,就能知道要從哪里下手進(jìn)行優(yōu)化。

1.3、監(jiān)控——機器性能指標(biāo)監(jiān)控體系
同時,剛才也有提到,業(yè)務(wù)對機器的性能要求越來越高。有很多的機器甚至可能根本沒辦法支持很高的FPS業(yè)務(wù)。性能對業(yè)務(wù)的影響非常大,同樣的性能,A業(yè)務(wù)能跑起來,B業(yè)務(wù)如果跑不起來,用戶的感覺就是B業(yè)務(wù)做得爛,團(tuán)隊很差。性能能夠幫助建立業(yè)務(wù)的影響力和用戶的口碑。
對于性能,其實也有很多辦法可以去做監(jiān)控,比如說給業(yè)務(wù)在機器上做性能的評分,通過評分能夠知道機器到底是什么情況,用戶的機器到底能承載多少FPS業(yè)務(wù),再根據(jù)結(jié)果進(jìn)行降級和升級優(yōu)化。這就需要統(tǒng)計和分析用戶到底是處在什么樣的機器性能什么。還有給不同動畫進(jìn)行FPS歸類、針對資源分類打包等等方式,都是監(jiān)控性能比較好的方式。
1.4、監(jiān)控——前端日志監(jiān)控體系
剛剛也有提到,用戶的環(huán)境非常復(fù)雜,這也是為什么說做前端要去細(xì)分到每個用戶的原因。不像做服務(wù)端,機器上跑什么版本你是知道的,搞定這個版本怎么做就ok。但用戶不一樣,每個用戶都是不同的,出了問題不一定能知道。在大量的數(shù)據(jù)情況下,是需要測試才能測出來的。因此,要對用戶的實際情況進(jìn)行監(jiān)控,到底業(yè)務(wù)走到哪里了,沒有走到的原因是什么?將這些信息全部收集上來。
2、監(jiān)控體系的自動化
有了這么多監(jiān)控方式,自然希望說它們能夠自動化去處理。僅僅依靠人力,每個業(yè)務(wù)上線都去弄一遍,那很難跑下來,人力成本會十分恐怖。因此需要去做自動化的處理,能夠?qū)崟r的知道業(yè)務(wù)出了問題,問題出在哪。而且希望能夠通過一些前端的染色,畢竟用戶的網(wǎng)絡(luò)其實也是有成本的,什么都上報,流量費用比其它業(yè)務(wù)高很多,用戶可能會進(jìn)行投訴,這就需要染色的能力。染色的能力就是說通過配置server去抓取你想要的用戶出錯信息。

3.1、業(yè)務(wù)優(yōu)化實踐——節(jié)點、場景優(yōu)化
有了這些自動化之后,就要開始實踐了。在業(yè)務(wù)中去實踐的時候可以看到,一個頁面的加載會分為很多流程。這些流程下面就是需要去針對細(xì)化的各個節(jié)點,并確定每個點到哪一步需要什么優(yōu)化方案。還有在各種場景的細(xì)分和劃分,針對這些場景進(jìn)行優(yōu)化。

3.2、業(yè)務(wù)優(yōu)化實踐——移動頁面性能優(yōu)化
對直播業(yè)務(wù)來說,移動端的業(yè)務(wù)量非常大。因此要學(xué)會充分利用性能工具來做事情,學(xué)會用工具作分析。同時要關(guān)注CPU變化趨勢和GPU渲染能力。如果說實在通過H5已經(jīng)解決不了問題了,就要適當(dāng)去找你的環(huán)境,環(huán)境會提供很多native的能力,不管是用React-Native還是用原生native接口的方式,都只有一個目標(biāo),就是通過環(huán)境來幫助你業(yè)務(wù)可以更好的體驗。
3.3、業(yè)務(wù)優(yōu)化實踐——圖片資源優(yōu)化
在直播行業(yè),有兩個資源比較重要,一個是視頻,一個是圖片。先看圖片要怎么去做優(yōu)化。
圖片其實有很多很多方式可以做,首先要考慮用戶的情況:第一,這個圖片能不能快速的加載下來;第二,這個圖片在用戶端能不能快速渲染。這些決定了圖片在業(yè)務(wù)上打開的快慢。
3.4、業(yè)務(wù)優(yōu)化實踐——視頻資源優(yōu)化
在直播行業(yè),通用的視頻架構(gòu)幾乎都會包含下面這些模塊,每一個模塊在處理時都需要時間,而最終都會體現(xiàn)在影響用戶體驗的時延。主播開始直播,從上傳視頻源的這一秒開始計時,到用戶能看到主播說這話的這個時間段就是時延。時延是直播業(yè)務(wù)非常重要的參考數(shù)據(jù),時延太高,互動性會非常差。