UE4 Network Profiler介紹 (二)
調整觀看折線圖的橫軸縱軸
只看某個時間區段的數據(橫軸)
這個功能比較直覺,就是滑鼠左鍵按著選擇到想看的範圍放開滑鼠左鍵就是了 如圖1,選擇範圍之後,就會只顯示這個時間範圍內的數據,如圖2。
圖1. 選擇時間區段
圖2. Actors內只會顯示這個時間範圍的數據
只看折線圖縱軸的某個區間
這個功能沒有文件也沒有UI提示,我也是偶然測到發現的,不過有的時候的確會用到這個功能。 通常是某單一影格傳輸的尖峰值太高,但是當下只想看平均傳輸的時候會需要支援選擇縱軸區段的作法就是在折線圖上面按一下滑鼠右鍵... 就會從"選擇橫軸區段"切換到"選擇縱軸區段" 然後一樣滑鼠左鍵按著,選擇想看的範圍再放開滑鼠左鍵,如圖3
圖3. 選擇縱軸區段
不過這個模式只會影響到折線圖內,畢竟縱軸是傳輸的資料量或是數目,這些值是不會受到顯示範圍而改變的。
例如圖4與圖2Actors內的數據因為時間範圍沒改變,所以一樣。
圖4. 選擇縱軸不影響Actors內顯示的數值
折線圖無法顯示的項目
我現在的版本是UE4.22 我有發現如果property傳輸低於1個byte的話,折線圖是不會顯示的, 即使你把縱軸放大到可以看到0~1的區間也是不會顯示。 在分析的時候要稍微注意一下這個小問題。
圖5. 示範在BP內定期改變enum與integer的範例。
圖5是一個blueprint範例,每0.5秒改變一次enum的內容(這個enum傳輸會低於一個byte)
每1秒改變一次inispeed的內容,因為是integer,所以改變一次是4Bytes的傳輸。
我們用Profiler看的結果會發現,smallEnum因為傳一次低於1 Byte (3/9),就直接不顯示在折線圖上面了,如圖6。
圖6. 從Actors頁面可以看到smallEnum是有傳的,但是在折線圖看不到。
Network Profiler Source Code
Network Profiler分引擎輸出資料端跟Network Profiler顯示端兩大部分 引擎輸出.nprof的程式碼放在 Engine/Source/Runtime/Engine/Public/Net/NetworkProfiler.h Engine/Source/Runtime/Engine/Private/NetworkProfiler.cpp 在UE4的solution內就可以找的到
Network Profiler主程式的顯示跟Parser端則是沒有放進UE4.sln裡面,要自己去 Engine/Source/Programs/NetworkProfiler/NetworkProfiler.sln 打開 主程式的專案路徑因為沒有在UE4的sln內,如果沒有記起來,突然要找會找不到,浪費時間 。 所以我直接寫了這段記起來,找到sln後要追程式碼就容易多了。
下回預告 (時間未定)
本來要把Bunch Overhead也寫進這篇文章,後來發現其實Overhead的部份跟Profiler工具本身比較沒有關係,大多都是靠追查source code得到的結果。所以有可能下一篇系列文章的標題不會是Network Profiler介紹(三),而是了解Bunch Overhead之類的~
留言
張貼留言