3. 調整觀看折線圖的橫軸縱軸
3.1 只看某個時間區段的數據(橫軸)
這個功能比較直覺,就是滑鼠左鍵按著選擇到想看的範圍放開滑鼠左鍵(如圖 1)就是了。
選擇範圍之後,就會只顯示這個時間範圍內的數據,如圖 2。
3.2 只看折線圖縱軸的某個區間
這個功能沒有文件也沒有 UI 提示,是偶然發現的,不過有時候的確會用到這個功能。通常是某單一影格傳輸的尖峰值太高,但是當下只想看平均傳輸的時候會需要。
支援選擇縱軸區段的作法就是在折線圖上面按一下滑鼠右鍵… 就會從選擇橫軸區段切換到選擇縱軸區段(切記這個切換沒有任何提示…)。然後一樣滑鼠左鍵按著,選擇想看的範圍再放開滑鼠左鍵,如圖 3。
不過這個模式只會影響到折線圖內,畢竟縱軸是傳輸的資料量或是數目,這些值是不會受到顯示範圍而改變的。 例如圖 4 與圖 2,Actors 內的數據因為時間範圍沒改變,所以一樣。
3.3 折線圖無法顯示的項目
撰寫這篇文章所使用的版本是 UE 4.22,發現如果 property 傳輸低於 1 個 byte 的話,折線圖是不會顯示的, 即使你把縱軸放大到可以看到 0~1 的區間也是不會顯示。在分析的時候要稍微注意一下這個小問題。
圖 5 是一個 blueprint 範例,每 0.5 秒改變一次 enum 的內容(這個 enum 傳輸會低於 1 個 byte);另外每 1 秒改變一次 inispeed 的內容,因為是 integer,所以改變一次是 4 Bytes 的傳輸。
我們用 Profiler 看結果會發現,smallEnum 因為傳一次低於 1 Byte (3/9),在折線圖上完全看不到,如圖 6。
4. 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 的 solution 內,如果沒有記起來,突然要找會找不到。所以直接寫了這段記起來,畢竟找到程式碼後要追問題或數據就容易多了。
下回預告
本來要把 Bunch Overhead 也寫進這篇文章,後來發現其實 Overhead 的部份跟 Network Profiler 工具本身沒有關係,大多都是用了 Profiler 想降低傳輸,發現一些問題後,持續追查 source code 得到的心得。所以有可能下一篇系列文章的標題不會是 Network Profiler (3),而是 Bunch Overhead 相關的文章。