在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    如何定位游戲發(fā)熱問題

    Q:目前項目的發(fā)熱問題很頭疼,2D游戲,基于TileMap、SpriteRenderer和UGUI的渲染,關閉了垂直同步,TargetFrameRate設置為60。Android和iOS上發(fā)熱都很嚴重,而且在比較好的機型(比如iPhone 12這種),發(fā)熱現(xiàn)象甚至更明顯。

    跟大部分情況不同,發(fā)熱并沒有怎么影響幀率,在大部分機型上,幀率都不是問題,連iPhone 8機型,都能60幀跑滿。

    在Unity Profile和Xcode都進行過性能分析,CPU最明顯的熱點函數(shù)就是Spine的骨骼動畫更新計算。然而到一個沒有骨骼動畫的場景,發(fā)熱現(xiàn)象稍好點,但還是比預期的要燙不少(場景中除了地面和一些靜態(tài)貼圖,基本就沒有多少東西)。

    另一個比較普遍的發(fā)熱點是網(wǎng)絡測試,在某場景關閉網(wǎng)絡后,發(fā)熱依然嚴重。甚至啟動游戲,停留在登錄界面一會兒,發(fā)熱現(xiàn)象都比別的游戲更明顯。

    猜測是否由于每幀的頂點數(shù)量過多造成的,在游戲中Unity的Status面板,頂點數(shù)量Verts達到了40KB,三角形Tris也有幾乎20KB。看起來很多,但我不太清楚當前主流游戲這個數(shù)值的級別大概是多少。而且,頂點和三角形的數(shù)量很難解釋登錄界面依然容易發(fā)熱,畢竟登錄界面這些數(shù)值不可能很高。

    自己也做了很多測試了,實在搞不清楚問題究竟在哪兒,Unity是還有什么特別需要優(yōu)化的,針對發(fā)熱的點嗎?

    A1:可以用Xcode抓幀看看帶寬,Load Store Action是否合理。

    A2:以下是我的建議:

    iPhone 8上跑滿60幀,證明CPU、GPU都沒有到達瓶頸,消耗在較為合理的范圍。推薦在Unity Profiler看一下CPU端的消耗,以及查看一下DrawCall數(shù)量。

    推薦使用FrameDebugger,看一下是否有冗余的物體或者后處理在渲染,尤其是你說的啟動界面有發(fā)熱。

    如果低級錯誤都排查過了,那么建議看一下是否用了原生的插件。

    渲染的分辨率是否調(diào)整過了,RenderScale的值和FrameDebugger可以查出來分辨率。

    A3:關于發(fā)熱的問題,通常要從幾個角度排查:CPU壓力(耗時)、GPU壓力(耗時和帶寬,可以考慮降低分辨率看看發(fā)熱問題是否會有改善)和IO等幾個角度。從題主的問題上看,耗時應該是沒問題,都能跑滿幀(當然60幀本身就是對發(fā)熱影響比較大的一點,可以看看限制30幀會不會發(fā)熱有下降),所以要看看一些隱形的東西是否有問題。比如帶寬,可以用Snapdragon在高通手機上跑一跑。如果帶寬較高,看看紋理的一些設置是否合理,比如是否壓縮、是否開啟Mipmap,這兩項通常都是需要設置成開啟的。還可以查看是否有不必要的BlitCopy操作,在URP項目中比較容易出現(xiàn)Copy Color和Copy Depth浪費。對于IO,需要看看是否存在子線程里面有頻繁IO的現(xiàn)象。

    如果大家有更好的回答,歡迎大家前往社區(qū)交流:

    https://answer.uwa4d.com/question/62910e1ab87a457351669b0c

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    (0)
    用戶投稿
    上一篇 2022年6月29日 09:40
    下一篇 2022年6月29日 09:40

    相關推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息