TogetherROS?·Bot零拷貝性能測試
我們使用TogetherROS?·Bot系統內部集成的性能測試工具——performance_test,來評估下開啟零拷貝前后的性能差異,這里我們傳輸的樣本數據量是4M。
未開啟零拷貝進行數據傳輸
$ ros2 run performance_test perf_test --reliable --keep-last --history-depth 10 -s 1 -m Array4m -r 100 --max-runtime 30 #未開啟
開啟零拷貝數據傳輸:
$ ros2 run performance_test perf_test --zero-copy --reliable --keep-last --history-depth 10 -s 1 -m Array4m -r 100 --max-runtime 30 #開啟
好的,測試已經跑完了,我們把結果放到這里,來分析一下。
在這個測試中,關鍵有四個指標:
- 時延,也就是消息從發布者到訂閱者的傳輸時間。不開啟零拷貝的情況下,平均為0.004912s,開啟零拷貝之后,速度快了差不多40倍,平均為0.000180s。
- CPU使用率,表示通信活動所占用的CPU時間,大家可以看這個utime指標,開啟零拷貝之后時間有顯著的提升,消耗CPU的資源少了。
- 駐留內存,包括通信過程中分配的內存和共享內存,是這個maxrss中的數據,開啟零拷貝之后,占用的內存也更少。
- 樣本統計,包括測試中發送、接收以及丟失的消息數量,是這組數據,依然是開啟零拷貝之后性能更好。
通過測試,對于大數據通信來講,零拷貝在CPU消耗、內存占用以及通信延遲抖動方面的性能都會更好。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
測試
+關注
關注
8文章
5362瀏覽量
126912 -
cpu
+關注
關注
68文章
10898瀏覽量
212569 -
數據傳輸
+關注
關注
9文章
1943瀏覽量
64749
發布評論請先 登錄
相關推薦
深入理解Linux系統零拷貝技術
內存拷貝是比較耗時操作,零拷貝是常用優化手段,今天分享的文章就是Linux系統零拷貝技術,Kafka和MySQL開源組件都用到這個核心技術,
什么是零拷貝技術
在傳統操作系統的數據傳輸過程中,系統內部會在磁盤、內存、緩存中多次進行數據拷貝,每次都會占用CPU的資源,數據量小的時候還好。 隨著數據量的增加,CPU的開銷也會持續增加,尤其是在機器人圖像數據
如何進行繼電器負載測試
如何進行繼電器負載測試? 繼電器是一種常見的電氣元件,用于控制和分配電力負載。要確保繼電器的負載能力和性能穩定,負載測試是必不可少的。 一、測試
如何進行FDD網絡的性能測試
進行FDD(Frequency Division Duplex,頻分雙工)網絡的性能測試,可以從以下幾個方面進行: 一、功能測試 確認FDD
評論