本文是Unity官方教程,性能優化系列的第一篇《The Profiler window》的簡單翻譯。html
相關文章:性能優化
Unity性能優化(1)-官方教程The Profiler window翻譯網絡
Unity性能優化(2)-官方教程Diagnosing performance problems using the Profiler window翻譯函數
Unity性能優化(3)-官方教程Optimizing garbage collection in Unity games翻譯工具
Unity性能優化(4)-官方教程Optimizing graphics rendering in Unity games翻譯佈局
性能分析工具能夠給咱們提供遊戲性能表現的詳細信息。若是咱們的遊戲存在性能問題,如低幀率或者高內存佔用,性能分析工具能夠幫助咱們發現問題的原由,並協助咱們解決問題。post
Profiler工具是Unity內置的強大的性能分析工具,本文介紹如何使用它。當咱們閱讀完本文,而且熟悉Profiler的界面和功能時,咱們能夠繼續學習怎麼使用它對不一樣類型的性能問題進行診斷。性能
Profiler能夠給咱們提供,關於咱們的遊戲的不一樣部分是怎樣運行的深刻的信息。學習
使用Profiler咱們能夠學習遊戲性能的不一樣方面,例如咱們的遊戲如何使用內存,不一樣的任務使用了多少cpu時間,物理運算執行的有多頻繁。最重要的是,咱們能夠利用這些數據找到引發性能問題的緣由,而且測量咱們的解決方案的有效性。測試
在咱們使用Profiler收集遊戲數據以前,先打開它熟悉下界面佈局。
-從菜單Window > Profiler打開
注意,只有在它開始錄製時纔會顯示性能信息,當咱們第一次打開時,一些部分是空的。
在窗口左側,能夠看到一列profilers,每一個profiler顯示咱們遊戲的一個方面的信息,分別爲cpu使用狀況,gpu使用狀況,渲染,內存使用狀況,聲音,物理和網絡。
當開始錄製時,窗口上部的每一個profiler會隨着時間顯示數據。性能是隨着時間變化的,因此隨着時間變化的信息是比僅僅一幀的信息有用的多的。有些性能問題是持續性的,有些問題是僅僅在一幀中出現的,還有一些性能問題是隨着時間逐漸顯現的。
Profiler的下半部顯示咱們選擇的當前profiler當前幀的詳細信息。
這裏顯示的數據依賴於咱們當前選擇的profiler。例如,當選中內存profiler時,這個區域顯示如遊戲資產使用的內存和總共內存佔用等。若是選中渲染profiler,這裏會顯示被渲染的對象數量或者渲染操做執行次數等數據。
這些profiler會提供不少詳細信息,可是咱們並不老是須要使用這些全部的profiler。事實上,咱們一般在分析遊戲性能時只是觀察一個或者兩個profiler。例如,當咱們的遊戲運行的比較慢時,咱們可能一開始先查看cpu usage profiler。
cpu usage profiler給咱們一個總覽,能夠觀察到咱們遊戲的哪一個部分佔用了最多的cpu時間。而後咱們能夠查看那個部分相關的profiler。例如咱們發現物理運算函數佔用了很長時間,那麼咱們就須要使用物理profiler去獲取更多的詳細信息。
咱們能夠關閉一些咱們不關心的profiler,經過點擊x按鈕就能夠關閉。
經過點擊左上角的Add Profiler按鈕,咱們能夠添加profiler。
咱們能夠隨時添加或者刪除profiler,添加刪除操做不會清除他們的數據,僅僅是顯示或者隱藏他們。
Profiler窗口的頂部包含一些控制按鈕。
咱們可使用控制按鈕開始或中止分析和瀏覽收集的數據。
一個典型的使用控制按鈕的過程以下,開始分析咱們的遊戲,當遊戲出現性能問題時,中止分析,而後經過時間線控制,逐幀的找到顯示出性能問題的幀,這幀的詳細信息會在下半部窗口顯示。
如今咱們理解了profiler的界面佈局,讓咱們繼續學習如何錄製數據,以及如何解讀數據來幫助咱們理解遊戲的性能。
咱們須要理解,當錄製數據時,遊戲性能會受到微小的影響,通常的性能分析工具都存在這個問題,想要獲取深刻的信息而沒有額外的消耗是不可能的。
咱們能夠在unity editor中運行遊戲時進行分析,也能夠在遊戲的development build運行時進行分析。development build的unity遊戲和常規build有兩方面不一樣:development build在遊戲運行時能夠鏈接profiler,而且包含了調試用的文件。
在development build中進行性能分析一般要比在unity editor分析要好。有兩個緣由:第一,性能和內存佔用等數據要比在unity editor中準確,由於profiler自己也屬於editor的一部分,這會影響結果。第二,最好在咱們遊戲的目標平臺上進行性能分析,若是咱們的遊戲是安卓遊戲,那麼咱們應該在一個安卓設備上進行測試。一些問題可能只會在特定的硬件或者特定的操做系統上出現,而咱們若是隻是用unity editor進行測試,就沒法發現這些問題。
雖然如此,有時咱們在unity editor中進行分析也是有必定做用的。有時咱們須要快速的瞭解遊戲大致上的性能,並不須要精確的結果,此時能夠在unity editor中進行分析。例如,咱們也許須要在運行時啓用或禁用大量的遊戲對象,查找是哪個遊戲對象引發的性能問題,在unity editor中測試這些更改是比development build要方便不少的,當咱們粗略的發現問題大概範圍時,再在development build中進行分析,獲取更加準確的信息幫助咱們處理這個問題。
在unity editor中進行錄製分析的步驟以下:
-在unity中打開遊戲工程
-菜單中打開profiler Window > Profiler
-確保Profiler窗口頂部的Record按鈕爲選中狀態
-在Play Mode中運行遊戲
此時Profiler會隨着遊戲中的互動實時的顯示分析數據。
在目標平臺上進行分析,須要運行development build並鏈接Profiler。不一樣的目標平臺有不一樣的具體作法。
步驟以下:
-在unity中打開想要分析的項目
-菜單中打開profiler Window > Profiler
-確保Profiler窗口頂部的Record按鈕爲選中狀態
-打開build settings(File > Build Settings)
-勾選Development Build
-勾選Autoconnect Profiler
-點擊Build and Run
此時Profiler會隨着遊戲中的互動實時的顯示分析數據。
在iOS或者Android中鏈接Profiler有些複雜,由於咱們須要把遊戲安裝到設備上,而且把設備鏈接到Unity Editor。
詳細的操做步驟,請參考on this page of the Unity Manual.
如今咱們理解了Profiler是怎樣工做的,咱們可使用它來肯定咱們遊戲中的問題,並協助咱們解決這些問題。
若是你的遊戲運行慢,卡頓,這篇文章能夠幫助你使用Profiler找到問題所在。
Unity Learn: Introduction to the profiler
Unity Learn: Profiler overview for beginners
Unity Manual: The CPU Profiler
Unity Manual: The GPU Profiler
Unity Manual: The Rendering Profiler
Unity Manual: The Memory Profiler
Unity Manual: The Audio Profiler