2012-01-26 53 views
2

據我所知,0MQ應該比羣集環境中的TCP套接字快,我可以看到情況會如何(我認爲這就是他們所說的「比TCP更快,對於集羣產品和超級計算「在0MQ網站上)。但是,我會看到使用0MQ而不是TCP套接字在同一臺計算機上運行的兩個進程之間進行通信的任何類型的加速嗎?如果兩個進程通信在同一臺機器上,我們會看到使用ZeroMQ而不是TCP套接字的加速嗎?

+0

您選擇了嘗試使用UPDA多播的答案,試過了嗎?它是否改善了形勢,有沒有經驗反饋? – 2012-07-02 02:23:53

+0

我不認爲接受的答案是正確的。問題就變成了ZMQ UDP能比標準C lib UDP更快嗎?我認爲答案是錯誤的,因爲ZMQ可能使用相同的標準C庫並添加一些消息標題。 – BAR 2015-08-17 03:39:31

回答

4

實際上,您並未在一臺計算機上運行,​​因爲虛擬機被視爲單獨的計算機。這意味着TCP套接字必須貫穿整個網絡堆棧,並且不能像在一臺機器上的進程之間進行通信時那樣採用快捷方式。

但是,你可以嘗試在ZeroMQ下的UDP多播,看看是否會加快你的應用程序。 UDP在廣域網上不太可靠,但是在虛擬機與主機通話的封閉環境中,可以安全地跳過所有TCP可靠性。

1

我想IPC應該比TCP更快。如果您願意轉向單一流程,INPROC肯定會快得多。

+0

絕對必須有兩個過程。一個進程在虛擬機中運行,另一個在虛擬機外運行(但運行在同一臺機器上)與外部硬件設備進行通信。現在有一種擔心,即VM與外部進程通信的TCP套接字太慢,只是想知道我們是否可以使用0MQ進行改進。 – aneccodeal 2012-01-27 01:17:46

6

那麼,短版是試試看。

稍微長一點的版本是編寫TCP套接字可能很難,有很多事情很容易出現問題,但是0MQ保證消息將被完整傳遞。它也是由網絡套接字的專家編寫的,它們在世界上最好的意願,你可能不會,並且它們使用一些高級技巧來加快速度。

0

我認爲(沒有測試過)答案是錯誤的,因爲ZMQ可能會使用相同的標準C庫並添加一些消息標題。

同樣的事情適用於UDP。

同樣的事情適用於IPC管道。

ZMQ可以一樣快,但是因爲它添加了標題,所以它不太可能。

現在,如果您確實需要某種標題,ZMQ比您更好地實施它,現在可能會有所不同。像郵件大小或類型,但我離題了。

相關問題