91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Libgdx畫面FPS性能優化經驗

發布時間:2020-06-27 08:04:40 來源:網絡 閱讀:3261 作者:passover 欄目:開發技術

 最近做的一個游戲類似植物大戰僵尸的風格,做完之后發現FPS一直不高,打無盡模式就相當的卡了,所以就研究了一下到底是什么原因導致的。目前優化完FPS提高了35%,效果還是比較理想的,記錄一下經驗供分享。


【性能定位】

1. 可重現的DEMO

 先寫了個一可以重現問題的demo,另外還準備了一個看起來效果類似卻不出現問題的demo。這樣有比更容易找到問題。

2. 時間消耗在哪

 開啟jvirtualvm進行測試,很明顯內存是一切正常的,但是CPU消耗就異常了。反復對比發現CPU消耗主要就是在“org.lwjgl.opengl.GL11.nglDrawElements”方法上,對比正常的demo,主要時間消耗是在“org.lwjgl.opengl.GL11.glDrawElements”方法上。前者調用了jni,后者就是直接調用,所以性能上有較大差距。但是這個時候還是很難知道到底為什么會這樣,這些代碼也都是被封裝了的,看不到源碼。

3. 定位代碼

 還是要找到大致問題代碼是在哪一塊,其實目前已經知道肯定是繪制的地方出問題了,所以用時間打印的方法很快找到代碼,但是跟到最后就是一個內部的函數調用,外層方法完全看不出來有啥特別的。

4. 替換比較法

 還好準備了兩個有對比性的demo,不停的替換不一樣的地方去看看到底是哪里引起的。這是一個笨辦法,但是通常都很奏效,但是也要點運氣,搞了幾個小時總算發現了端倪。


【性能優化結論】

1. 繪制的性能與次數有關,與繪制最終所占屏幕面積無關。也就是說你把100個圖片覆蓋整個畫面的性能和100個圖片繪制在同一個位置看起來像一個圖片的性能是相當的。

2. 圖片繪制的面積大到一定程度才影響性能。繪制工作肯定還是與面積有關,但是25%屏幕大小以內的圖片對性能影響幾乎沒有,但圖片達到80%屏幕覆蓋時會有大約40%的性能影響,不是成同等比例關系。

3. 圖片用Linear比Nearest要更消耗性能。當需要用到的Linear打包圖片數量達到幾十個的時候就需要注意性能,盡量改用Nearest算法,性能會有10%的提升。

4. 同一個打包合并的圖片連續使用可以大幅度提升性能(注:同一個pack下合并在不同圖片性能和2個pack是一樣差的)。在同一個pack的圖片,注意在addActor的時候連續添加,性能可以極大提升,甚至連續繪制幾百張圖片都不會對fps有太大影響,這也是為什么在libgdx有一個actor測試的時候有許多圖片感覺都不掉fps的原因。這個優化性能提升是在100%以上。

5. 畫面簡單,透明度較多的圖片性能更好。這個會減少繪制的負擔,當然圖片大到一定程度才會感覺到差別,根據畫面復雜度可能會有20%的不同。

6. 大量的GROUP對象影響繪制性能。當GROUP對象使用達到幾十個的時候,哪怕只是包含一個Image的Group都會比簡單的Image繪制要消耗更多時間,幀數下降了10多幀。(2014年1月2日補充)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

册亨县| 堆龙德庆县| 随州市| 广河县| 眉山市| 沧州市| 盈江县| 申扎县| 丰宁| 张家口市| 崇明县| 获嘉县| 中方县| 定边县| 玛曲县| 咸阳市| 揭东县| 老河口市| 潍坊市| 扶余县| 广州市| 铁岭市| 佛学| 玉林市| 新民市| 娄底市| 米脂县| 林州市| 来宾市| 长沙市| 尼勒克县| 铜鼓县| 梁山县| 沾化县| 阳江市| 彩票| 德安县| 绍兴县| 西峡县| 太康县| 林口县|