[程式] UE4 Network Profiler介紹 (二)

看板GameDesign (遊戲設計)作者 (yekdniw)時間5年前 (2019/06/08 18:32), 編輯推噓2(200)
留言2則, 2人參與, 5年前最新討論串1/1
網頁版 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
文章代碼(AID): #1S-uwjoB (GameDesign)
文章代碼(AID): #1S-uwjoB (GameDesign)