Unity面對優化不再束手無策---Profiler性能分析

一說到優化,相信很多人都會頭大,心想這個難搞,無從下手,束手無策。但是優化是遊戲開發必不可少的。也是必須要走的一條路,或許叫一道坎也不為過。為什麼呢?遊戲玩的就是體驗。如果你的遊戲給人的體驗極差,那麼你覺得還有人會玩你的遊戲嗎?遊戲體驗不僅僅是遊戲的玩法,同時還有其他的因素。比如性能啊等等。所以你會發現,遊戲公司會優化的人是很吃香的。但是由於它還是有一定的難度。所以會的人也是比較少的。很多人都知道優化很重要,但是卻不知道從何下手。因為他自己都不知道哪裡需要優化。絕大部分是這樣的。其實優化沒有那麼難,不信的話,咱們繼續看。

今天給大家帶來的是性能優化的”葵花寶典”,哈哈。我們在unity中怎麼看自己的項目的性能情況呢?相信很多人都會說,我們看state面板屬性進行分析啊!這個地方確實是可以看出一點東西的。但是它只能看個大概,能解決部分問題。也就是治標不治本。那麼我們該怎麼才能找到我們性能的嚴重耗損點呢。這個時候我們就需要看Profiler了。它是什麼?它是性能分析器(姑且這麼叫它),它可以比state更加清晰的看清楚你的項目哪些地方性能消耗嚴重。怎麼打開呢?Window->Profiler,就可以看到了。它主要包含CPU,GPU,Render,內存,聲音,視頻,網絡,物理系統等模塊的性能消耗情況。如圖:

Unity面對優化不再束手無策---Profiler性能分析

比如這裡我們運行一個項目,然後可以看看它的性能情況,如下圖:

Unity面對優化不再束手無策---Profiler性能分析

我們可以很清楚的看到我們CPU ,GPU的消耗情況。在這裡我們來說下最下面的一些函數吧。這些函數就是Unity列舉出來的性能消耗的主要函數。從這裡你就能看到你的項目到底是哪裡出現了問題了,然後就逐個問題逐個解決。這樣就能達到優化的目的了。讓你不再是無頭蒼蠅一樣。不知所措。

Unity面對優化不再束手無策---Profiler性能分析

比如我這個項目,在mono這個模塊中,消耗佔比都有寫出,哪些函數消耗多少性能,一幀調用多少次等等。還有一個值得注意的點。最上面佔比最大的是WaitfortargetFPS,這個玩意兒是什麼呢?我們都知道一個遊戲比較好的FPS是60左右。那麼有時候我們的FPS可能會高,可能會底,那麼我們FPS太高的話,雖然好,但是會浪費性能,太低的話,遊戲體驗不好,所以我們要儘量的保持到60左右是最好的。那麼怎麼做的?如果是高於60幀的,我們就會有多餘的時間,那麼多餘的時間,我們的CPU就可以做其他的事情了。如果沒有其他事情做,它就會休眠一段時間來等待下一幀的到來,那麼休眠等待的這個,就是waitfortargetFPS.如果低於60 的話,它會怎麼辦?那肯定是瘋狂做它該做的事情啊。事情的做不完,還想休息?不存在的!

至於其他的幾個模塊,我就不一一的帶著大家來說了,感興趣的自己研究下。這一塊還是很有含金量的。好了,本次的分享到此為止。不喜勿噴哦!


分享到:


相關文章: