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之類的~

留言

這個網誌中的熱門文章

UE4 除錯技巧分享 (一)

UE4 GameplayAbilitySystem - GameplayEffect & GameplayCue 如何設定參數

UE4 GameplayAbilityTask介紹