在此,列出了在業(yè)務(wù)中需要做的點(diǎn):
不管是從資源的加載,還是資源的使用,還是版本的覆蓋,還是本身的前端的錯誤,這些都是要做的。如果這些都沒有做,那么說明對業(yè)務(wù)的掌控是不夠的,你不知道用戶哪里出了問題。所以說監(jiān)控是很重要的點(diǎn), 現(xiàn)在有很多開源工具可以幫助你去做,也有很多現(xiàn)成的統(tǒng)計(jì)工具。
當(dāng)然,監(jiān)控不是最終目的,優(yōu)化業(yè)務(wù)和提升業(yè)務(wù)才是。工具做好之后,就要去在監(jiān)控中發(fā)現(xiàn)問題,最好是能主動發(fā)現(xiàn)問題,而不是被動的依靠用戶投訴。
1.2、監(jiān)控——視頻流監(jiān)控體系
在直播業(yè)務(wù)中,還有個很特別的東西就是視頻流。因?yàn)樗奶攸c(diǎn)是量很大,加載對用戶的網(wǎng)絡(luò)要求很高,在視頻上面對視頻流需要比傳統(tǒng)的資源更細(xì)致的處理。需要去從它的加載、播放等各個方面做監(jiān)控和完善。做完這些你才知道你的業(yè)務(wù)問題和瓶頸在哪里。然后再經(jīng)過分析,就能知道要從哪里下手進(jìn)行優(yōu)化。
1.3、監(jiān)控——機(jī)器性能指標(biāo)監(jiān)控體系
同時(shí),剛才也有提到,業(yè)務(wù)對機(jī)器的性能要求越來越高。有很多的機(jī)器甚至可能根本沒辦法支持很高的FPS業(yè)務(wù)。性能對業(yè)務(wù)的影響非常大,同樣的性能,A業(yè)務(wù)能跑起來,B業(yè)務(wù)如果跑不起來,用戶的感覺就是B業(yè)務(wù)做得爛,團(tuán)隊(duì)很差。性能能夠幫助建立業(yè)務(wù)的影響力和用戶的口碑。
對于性能,其實(shí)也有很多辦法可以去做監(jiān)控,比如說給業(yè)務(wù)在機(jī)器上做性能的評分,通過評分能夠知道機(jī)器到底是什么情況,用戶的機(jī)器到底能承載多少FPS業(yè)務(wù),再根據(jù)結(jié)果進(jìn)行降級和升級優(yōu)化。這就需要統(tǒng)計(jì)和分析用戶到底是處在什么樣的機(jī)器性能什么。還有給不同動畫進(jìn)行FPS歸類、針對資源分類打包等等方式,都是監(jiān)控性能比較好的方式。
1.4、監(jiān)控——前端日志監(jiān)控體系
剛剛也有提到,用戶的環(huán)境非常復(fù)雜,這也是為什么說做前端要去細(xì)分到每個用戶的原因。不像做服務(wù)端,機(jī)器上跑什么版本你是知道的,搞定這個版本怎么做就ok。但用戶不一樣,每個用戶都是不同的,出了問題不一定能知道。在大量的數(shù)據(jù)情況下,是需要測試才能測出來的。因此,要對用戶的實(shí)際情況進(jìn)行監(jiān)控,到底業(yè)務(wù)走到哪里了,沒有走到的原因是什么?將這些信息全部收集上來。
2、監(jiān)控體系的自動化
有了這么多監(jiān)控方式,自然希望說它們能夠自動化去處理。僅僅依靠人力,每個業(yè)務(wù)上線都去弄一遍,那很難跑下來,人力成本會十分恐怖。因此需要去做自動化的處理,能夠?qū)崟r(shí)的知道業(yè)務(wù)出了問題,問題出在哪。而且希望能夠通過一些前端的染色,畢竟用戶的網(wǎng)絡(luò)其實(shí)也是有成本的,什么都上報(bào),流量費(fèi)用比其它業(yè)務(wù)高很多,用戶可能會進(jìn)行投訴,這就需要染色的能力。染色的能力就是說通過配置server去抓取你想要的用戶出錯信息。
3.1、業(yè)務(wù)優(yōu)化實(shí)踐——節(jié)點(diǎn)、場景優(yōu)化
有了這些自動化之后,就要開始實(shí)踐了。在業(yè)務(wù)中去實(shí)踐的時(shí)候可以看到,一個頁面的加載會分為很多流程。這些流程下面就是需要去針對細(xì)化的各個節(jié)點(diǎn),并確定每個點(diǎn)到哪一步需要什么優(yōu)化方案。還有在各種場景的細(xì)分和劃分,針對這些場景進(jìn)行優(yōu)化。
3.2、業(yè)務(wù)優(yōu)化實(shí)踐——移動頁面性能優(yōu)化
對直播業(yè)務(wù)來說,移動端的業(yè)務(wù)量非常大。因此要學(xué)會充分利用性能工具來做事情,學(xué)會用工具作分析。同時(shí)要關(guān)注CPU變化趨勢和GPU渲染能力。如果說實(shí)在通過H5已經(jīng)解決不了問題了,就要適當(dāng)去找你的環(huán)境,環(huán)境會提供很多native的能力,不管是用React-Native還是用原生native接口的方式,都只有一個目標(biāo),就是通過環(huán)境來幫助你業(yè)務(wù)可以更好的體驗(yàn)。
3.3、業(yè)務(wù)優(yōu)化實(shí)踐——圖片資源優(yōu)化
在直播行業(yè),有兩個資源比較重要,一個是視頻,一個是圖片。先看圖片要怎么去做優(yōu)化。