文章出處

資源加載性能測試代碼

與上篇所提出的測試代碼一樣,我們對于其他資源的加載性能分析同樣使用該測試代碼。我們將每種資源均制作成一定大小的AssetBundle文件,并逐一通過以下代碼在不同設備上進行加載,以期得到不同硬件設備上的資源加載性能比較。
請輸入圖片描述

測試環境
引擎版本:Unity 5.2版本
測試設備:三臺不同檔次的移動設備(Android:紅米2、紅米Note2和三星S6)


網格資源

網格資源與紋理資源一樣,在加載時同樣會造成較高的CPU占用,且其加載效率由其自身大小(網格數據量)決定。因此,我們通過選擇不同數據量的網格資源來詳細分析其加載效率。

測試1:不同面片數的網格資源加載效率測試
我們選取了四種不同面片數的網格資源,含有的面片數分別為1K、5K、10K和50K,且不含有Tangent頂點屬性。四組網格資源的內存占用分別為195KB、0.8MB、1.4MB和3.9MB,其對應AssetBundle大小為43KB、108KB、178KB和507KB。

測試網格:
請輸入圖片描述

我們在三種不同檔次的機型上加載這些網格資源,為降低偶然性,每臺設備上重復進行十次加載操作并將取其平均值作為最終性能開銷。具體測試結果如下表所示:

Mesh_TriangleCount.jpg

通過上述測試,我們可以得到以下結論:

1、資源的數據量對加載性能影響較大,面片數越多,其加載越為耗時。設備性能越差,其耗時差別越為明顯;

2、隨著硬件設備性能的提升,其加載效率差異越來越不明顯。

測試2:相同面片數、不同頂點屬性的加載效率測試
我們選擇測試1中的網格資源做為該測試的樣本數據,并在打包時加入Tangent頂點屬性。則四組網格資源的內存占用分別為287KB、1.2MB、2.1MB和5.8MB,其對應AssetBundle大小為72KB、228KB、376KB和937KB。與測試1相同,我們在三種不同檔次的機型上重復進行十次加載操作并將取其平均值作為最終性能開銷。具體測試結果如下圖所示:
請輸入圖片描述
請輸入圖片描述
通過上述測試,我們可以得到以下結論:

1、頂點屬性的增加對內存和AssetBundle包體大小影響較大。與測試1中未引入Tangent頂點屬性的網格數據相比,測試2中的網格數據在內存上均大幅度增加(增加量與網格頂點數有關),且AssetBundle大小同樣有成倍(1~2)的增加。

2、頂點屬性增加對于加載效率影響較大,且頂點數越多,影響越大。

注意事項:
模型常見的頂點屬性主要有Position、UV、Normal、Tangent和Color。Color屬性與Tangent屬性一樣,如果網格頂點擁有該屬性,同樣會對內存、物理體積和加載性能造成影響。

在使用Draw Call Batching時,切忌將不同屬性的網格模型拼合在一起。舉個例子 ,100個網格模型進行Static Batching,如果99個模型只有Position和UV兩種屬性,而剩下1個模型函數有Position、UV、Normal、Tangent和Color五種屬性。那么引擎在進行拼合時,會將前99個模型的頂點屬性補齊,然后再進行拼合。這樣無形中會增加大量的內存占用,從而造成不必要的內存浪費。

測試3:開啟/關閉Read/Write功能的加載效率測試
我們使用測試1中的網格資源數據,并關閉其Read/Write功能,從而來查看其Read/Write功能對加載效率的影響。關閉Read/Write功能后,四組網格資源的內存占用分別為104KB、454KB、0.8MB和2.3MB,其對應AssetBundle大小為38KB、94KB、152KB和428KB。與測試1相同,我們在三種不同檔次的機型上重復進行十次加載操作并將取其平均值作為最終性能開銷。具體測試結果如下圖所示:
請輸入圖片描述
請輸入圖片描述

通過上述測試,我們可以得到以下結論:

1、關閉Read/Write功能會降低AssetBundle的物理大小,其降低量與資源本身數據量相關。同時,關閉Read/Write功能會大幅度降低網格資源的內存占用;

2、關閉Read/Write功能會略微提升該資源的加載效率。


通過以上測試和分析,我們對于網格資源的管理建議如下:

1、在保證視覺效果的前提下,盡可能采用“夠用就好”的原則,即降低網格資源的頂點數量和面片數量;

2、研發團隊對于頂點屬性的使用需謹慎處理。通過以上分析可以看出,頂點屬性越多,則內存占用越高,加載時間越長;

3、如果在項目運行過程中對網格資源數據不進行讀寫操作(比如Morphing動畫等),那么建議將Read/Write功能關閉,既可以提升加載效率,又可以大幅度降低內存占用。

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()