Q A 效能優化(三)

2021-07-29 21:44:45 字數 576 閱讀 6070

q1:請問怎麼優化下圖這兩者的gc alloc?每次addcomponent 都會有這麼多的開銷。

圖中的兩項gc alloc是在進行addcomponent時不可避免的,因此只能通過儘量減少addcomponent的呼叫次數來進行優化。

q2:請問,反覆對乙個gameobject呼叫setactive(true),是否會很耗效能?

頻繁setactive(true/false)會有一定的cpu開銷占用。其少量次數並不會帶來很高的cpu占用,但是在我們檢測過的很多專案中,其每幀都可能存在大量的setactive呼叫。究其原因,是因為掛載在gameobject的指令碼上,其update或lateupdate等函式中每幀都會呼叫setactive操作,從而造成了其每幀幾十甚至上百次的呼叫操作。

正因如此,我們在報告中將setactive的具體gameobject資訊、頻率和耗時都詳細展示出來,以方便大家在幾分鐘之內,就可以將setactive呼叫過量的問題進行修復。

效能診斷與優化工具(Q A)

q1 texture占用記憶體總是雙倍,這個是我們自己的問題,還是unity引擎的機制?出現這種情況的原因有兩種 一種是你在真機執行時開啟了read write。另一種可能是unity的bug,目前的unity 5.2.3 release note如下 735644 opengl fixed tex...

Q A 執行效能(一)

q1 如下圖,我們發現waitingforjob這個函式消耗過高導致了卡頓,請問該卡頓是否由於渲染壓力過大導致?從圖中看,該執行緒最後是在等待 canvas.sortjob,而這是 ui 排序造成的開銷 自unity5.2版本開始,ugui的部分計算已經移出了主線程 詳情參考 因此理論上,這是 ui...

ORACLE SQL效能優化(三)

8.使用decode函式來減少處理時間 使用decode函式可以避免重複掃瞄相同記錄或重複連線相同的表.例如 select count sum sal from emp where dept no 0020 and ename like smith select count sum sal from...