在上一篇文章中我簡要的介紹了一下我們要采用的平臺(PowerVR GPU+Cocos2d-x),以及一些列的評測規(guī)則和工具。這本篇文章中我將向大家展示如何使用PVRTune工具來鑒別性能瓶頸。
搭建測試環(huán)境
如果你想體驗一下Fantasy Warrior 3D(幻想勇士3D)這個游戲,你可以訪問“這里”,提供了游戲視頻介紹,然后訪問“這里”下載這個游戲的源代碼。
第一步我們需要按照Fantasy Warrior 3D(幻想勇士3D)工程目錄下的README.md文件說明編譯游戲。然后我們才能夠使用PVRHub和PVRTune工具記錄性能分析文件。我已經(jīng)將我的記錄文件提交到了“這里”。這些文件記錄了如下環(huán)境下分析信息:
? 硬件信息
o 設備名稱:昂達V989平板電腦(Allwinner A80芯片,PowerVR Series6G6230 GPU)
? 軟件信息
o 安卓系統(tǒng)版本:4.4.2
o 驅動信息:版本1.4 Rogue_DDK_Android_RSCompute rogueddk @3234138 (正式版) sunxi_android
o PVRTuneDeveloper:版本V14.111.1(SDK bulid 3.5@3530647)
o PVRpPefServerDeveloper:版本V14.111.1(SDK build 3.5@3533642)
o PVRTrace記錄庫文件:版本V20(SDK build 3.5@3533642)
鑒別性能瓶頸
在這游戲中要想鑒別性能瓶頸,我們可以采用PVRTune工具。在所有的記錄文件(*.pvrtune)中我提取了一個具有代表性性的數(shù)據(jù)文件(2338)。我將用下面列出的幾條標準向大家解釋如何借助PVRTune工具來鑒別性能瓶頸。性能瓶頸一般可分為以下五種類型:
? CPU局限
? 頂點局限(游戲中一般有頂點著色渲染)
? 垂直同步局限
? 碎片局限
? 帶寬局限
CPU局限
CPU性能顯示還是很容易鑒別的,盡管顯卡的使用率不高但是我們可以明顯感覺到性能很差,幀率很低。借助PVRTune工具更能直觀的鑒別出來,受CPU性能局限的應用往往CPU的負載會達到或者接近100%(a)。
其它鑒別因素還有著色器加載的間隔,這個間隔表示PowerVR硬件將進行暫時休眠,因為它可能正在等待CPU操作完成
(b)或者GPU正在等待下一次的幀同步。
以Fantasy Warrior 3D(幻想勇士3D)為測試對象,我們收集了如下數(shù)據(jù):
從分析圖中我們可以看出CPU的負載率僅為12.0%,但是在Tiler和渲染之間出現(xiàn)很多較長的間隔。因此PowerVR硬件在等待來自渲染線程(10612)指令的同時進入了休眠。所以此游戲的最大問題就是Cocos2d-x引擎不支持獨立的渲染線程。每一幀的渲染都需要等待游戲邏輯完成后才能進行。在第三行的時序圖中你可以發(fā)現(xiàn)每一幀的圖像API調用之間都有很大的間隔,這表明CPU的性能局限。
Vertex(頂點)局限
頂點局限的原因是每一幀都有很多定點需要處理或者是使用了復雜的頂點著色器,亦或者是兩者共同的原因。我們也可以通過時序間隔來鑒別,在渲染操作(a)時序中會有很多大的間隔,而在Tiler操作(b)時序中只有很小或者沒有間隔。
我們可以從頂點加載處理過程和Tiler加載計數(shù)器中獲取更多更詳細的分析數(shù)據(jù)。如果Tiler激活指示曲線(c)是很高的一條線而加載處理過程不是:說明Vertex(頂點)過程并沒有很多頂點元素需要處理,性能的支出主要用于Tiler操作。相反如果加載處理過程中Vertex指示曲線(d)很高而Tiler操作不是,那么性能的瓶頸主要是因為頂點的著色操作。
我們可以很明顯的看出,在渲染(Render)操作和Tiler操作曲線之間有很多的間隔。處理加載均值Vertex是1.6%,峰值達14.4%,Tiler操作均值為10%。盡管實際上每一幀的加載處理包括Vertex和Tiler效率均值都很低,我們可以借助PVRSaderEditor工具優(yōu)化Vertex(頂點)著色。所幸的是Fantasy Warrior 3D(幻想勇士3D)并沒有vertex(頂點)局限的問題。
垂直同步(V-sync)局限
垂直同步(V-sync)顯示上的一種設置,即在某一應用中將圖形的更新速率與顯示器的更新速率進行同步。這會造成一些幀有稍微延后的情況,強制設置為最快的刷新速率,減少屏幕的卡頓且降低功耗。具有V-sync局限應用的特點是在圖形視圖中連續(xù)的幀之間會出現(xiàn)斷續(xù)的間隔,幀刷新速率被限制設置為最大值。如果可能的話,在分析某一應用時v-sync應該被禁用,否則它會給PVRTune的輸出數(shù)據(jù)增加干擾,這會讓我們更加難判斷哪些優(yōu)化工作是有用的或者各種優(yōu)化措施已經(jīng)見效。
評論