【PerfDog專家課堂】騰訊遊戲性能實戰案例分享之幀率陡變
- 2019 年 12 月 27 日
- 筆記

導語
在最近一次遊戲性能專項測試過程中發現幀率陡降,開發同學分析源程式碼堆棧資訊,折騰了很久一直無法定位原因,最終定位到原來是手機發熱降頻引起。
有經驗一看完整的性能數據,基本一眼都能看出問題原因。需要強調一點:分析問題需要整體數據聯動分析,單獨看某單一資訊是沒是意義的。這個案例很典型,所以將本次性能實戰經驗分析出來,希望對測試或者開發同學有些幫助。
一月一度的遊戲性能專項回歸測試過程中,我們在Galaxy S9 Plus手機上測試發現,幀率出現陡降問題,非常有規律的:進入遊戲玩一段時間幀率FPS出現緩慢降低,從50幀降低到十幾幀,然後一直持續低幀率,低幀率情況下Jank卡頓明顯增加,具體如PerfDog客戶端截圖:

對應web截圖( web圖表資訊看的會更直接些) 如下:

開發同學還以為是遊戲程式碼問題,列印堆棧資訊也沒看出什麼問題,CPU利用率15%左右,總利用率40%左右都很正常,問題是陡降過程中,CPU利用率也無變化。如圖:

排除了CPU的原因,那是否是記憶體memory出現泄漏,導致記憶體不夠用以至於出現記憶體swap置換問題?但通過數據看,500-600MB左右也很正常。如圖:

CPU和記憶體都沒有問題,遊戲的渲染畫面,相對來說GPU可能出現瓶頸,遂對GPU進行查看,發現幀率陡降過程中GPU利用率從80%-40%左右,說明GPU不是性能瓶頸點,GPU降為40%這個如何理解?是由於幀率降低了,渲染東西變少了,自然利用率降低。
很容易想到的點都分析到,都沒發現說明問題。在測試過程中發現手機發熱厲害,會不會與溫度有關?如圖:

在最近一次遊戲性能專項測試過程中發現幀率陡降,開發同學分析源程式碼堆棧資訊,折騰了很久一直無法定位原因,最終定位到原來是手機發熱降頻引起。

圖片發現幀率從47幀降到16.9幀,頻率從1700+2800降低到576+825。驗證了確實是降頻引起幀率降低,頓開茅塞的感覺。這次問題也得以解決。
PerfDog專家課堂劃重點
手機硬體溫控系統,為什麼需要溫控?
因為:手機高頻運行類似發動機一樣,產生極大能耗熱量,高頻隨著運行時間,溫度會持續增加,若不加控制,會不會上幾百度?會燒毀CPU晶片,所以硬體需要溫度控制,如何控制?唯有降低CPU頻率,當溫度超過一定閾值,就會觸發溫控降頻機制。不同手機廠商溫度閾值不一樣,有些手機50度就會降頻,有些手機65度才會降頻,之前測試過小米5,好像不到50度就會降頻,對溫度及其敏感。
PerfDog是專註於移動性能測試分析的平台,能夠提供很多性能數據,每一項數據都很有意義和價值。但是在分析問題過程中,需要多數據一起聯動分析,可能會發現意想不到的效果。
感謝PerfDog專家提供技術課堂內容,歡迎點擊閱讀原文跳轉至PerfDog下載頁面或通過以下方式了解更多關於PerfDog的資訊:

掃碼即刻加群 與2000+測試同行深度交流
PerfDog官網:perfdog.qq.com
PerfDog交流群:602206842
關於騰訊WeTest
騰訊WeTest是由騰訊官方推出的一站式品質開放平台。十餘年品質管理經驗,致力於品質標準建設、產品品質提升。騰訊WeTest為移動開發者提供兼容性測試、雲真機、性能測試、安全防護、企鵝風訊(輿情分析)等優秀研發工具,為百餘行業提供解決方案,覆蓋產品在研發、運營各階段的測試需求,歷經千款產品磨礪。金牌專家團隊,通過5大維度,41項指標,360度保障您的產品品質。

