我一直在使用名爲ROS(http://www.ros.org)的系統檢出一些作品。很多數據量很少的端口,或者一個端口有很多數據?
在ROS中的網絡節點之間有很多不同類型的數據被髮送。 您可以定義一個要發送到消息中的數據結構,ROS將處理在兩個節點之間打開一個只發送該數據結構的特定端口。
所以如果有5個不同的消息,將會有5個不同的端口。
與此場景相反,我看到其他平臺只是將所有不同的消息推送到一個端口。這意味着需要一種多路複用/解複用(由接收器端的某種消息解析完成)。
我在想什麼......從性能角度來看哪個更好?
操作系統是否快速基於端口進行切換,以便像ROS這樣的系統不需要做太多的工作來計算出消息中的內容並解釋它?
OR
是開放大量的端口將意味着大量的慢內核調用的,並具有制定和翻譯的消息類型最終會被更多的則時間成本花在端口之間進行切換?
當以高速率和大量不同的消息類型擴展到大量數據時,會有很多端口。所以我設想在擴展這些拓撲時,性能將成爲選擇工作方式的重要因素。
我還應該指出,這些節點通常存在於一個小型網絡中,或者大部分時間都在一臺機器上,其中網絡被用作進程間通信的力量。所以傳輸時間只是整個系統時間的一個非常小的因素。因爲根據系統的複雜性,我們可能會談論20-30個節點在10個節點之間推送小數據(100字節左右)的數據, 100Hz
謝謝jldupont,我會更新與更多的細節問題。 我沒有考慮過這個級別的問題 – Fuzz