[程式] UE4 Network Profiler介紹 (二)
網頁版
https://yekdniwunrealengine.blogspot.com/2019/06/ue4-network-profiler.html
此篇是延伸UE4 Network Profiler介紹 (一)的後續,有需要的可以先看完
前篇再看這篇。
https://yekdniwunrealengine.blogspot.com/2019/04/ue4-network-profiler.html
調整觀看折線圖的橫軸縱軸
只看某個時間區段的數據(橫軸)
這個功能比較直覺,就是滑鼠左鍵按著選擇到想看的範圍放開滑鼠左鍵就是了
如圖1,選擇範圍之後,就會只顯示這個時間範圍內的數據,如圖2。
[圖1.]
圖1. 選擇時間區段
[圖2.]
圖2. Actors內只會顯示這個時間範圍的數據
只看折線圖縱軸的某個區間
這個功能沒有文件也沒有UI提示,我也是偶然測到發現的,
不過有的時候的確會用到這個功能。
通常是某單一影格傳輸的尖峰值太高,但是當下只想看平均傳輸的時候會需要
支援選擇縱軸區段的作法就是在折線圖上面按一下滑鼠右鍵...
就會從"選擇橫軸區段"切換到"選擇縱軸區段"
然後一樣滑鼠左鍵按著,選擇想看的範圍再放開滑鼠左鍵,如圖3
[圖3.]
圖3. 選擇縱軸區段
不過這個模式只會影響到折線圖內,畢竟縱軸是傳輸的資料量或是數目,
這些值是不會受到顯示範圍而改變的。
例如圖4與圖2Actors內的數據因為時間範圍沒改變,所以一樣。
[圖4.]
圖4. 選擇縱軸不影響Actors內顯示的數值
折線圖無法顯示的項目
我現在的版本是UE4.22 我有發現如果property傳輸低於1個byte的話,
折線圖是不會顯示的,即使你把縱軸放大到可以看到0~1的區間也是不會顯示。
在分析的時候要稍微注意一下這個小問題。
[圖5.]
圖5. 示範在BP內定期改變enum與integer的範例。
圖5是一個blueprint範例,每0.5秒改變一次enum的內容
(這個enum傳輸會低於一個byte)
每1秒改變一次inispeed的內容,因為是integer,所以改變一次是4Bytes的傳輸。
我們用Profiler看的結果會發現,smallEnum因為傳一次低於1 Byte (3/9),
就直接不顯示在折線圖上面了,如圖6。
[圖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之類的~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.64.78 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1559989933.A.C8B.html
推
06/08 19:49,
5年前
, 1F
06/08 19:49, 1F
推
06/09 14:03,
5年前
, 2F
06/09 14:03, 2F
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章