2009-11-25 79 views
14

我需要類似插座的本地IPC。我在Windows上使用了命名管道並重疊了IO,我想重寫應用程序以boost :: ASIO,以便它也可以使用UNIX域套接字。有沒有人做過boost :: asio的性能分析?

我最近審查了libevent庫的一部分,我知道它只支持1.4版本中的socket()和select()for windows。由於重疊的IO非常有效,所以在版本2(這是alpha版本)中顯然是一個令人無法接受的特性。次優化實施的另一個例子是使用紅黑樹與prio-queues的超時邏輯,其沿線的某處是adressed

有沒有人對boost與libevent/libev的性能特徵有任何意見。它在某些平臺上有沒有令人眩目的不受歡迎的特徵?我的這個問題的目的是,除非我絕對必須,否則我不想讓ASIO庫陷入困境。我想知道boost :: asio是否以最優化的方式使用最優化的操作系統原語。

+0

我認爲關於libevent的提問者的評論不支持Windows下的重疊IO過時。有人確認。 – unixman83 2012-02-20 15:05:37

回答

4

另外check this post關於boost :: asio的鎖定問題,其中可能影響你。

+0

謝謝frunsi,那個帖子非常有幫助。 – 2009-12-14 15:32:25

8

我對asio和我自己的impl進行了文件讀取性能測試(my blogpost entry) - 用兩個詞 - asio顯示出良好的結果。

+0

謝謝>隨機文本<:D – 2009-12-10 15:03:03

+0

請注意,此測試不會顯示套接字上的ASIO性能。並沒有比較它在重負載下的性能。 – unixman83 2012-02-20 14:17:20

2

在我看來Boost.AsioWindows-First,其中大多數其他自由軟件庫是Linux-First。但是Linux下的質量一直很好。由於這個軟件被20個沒有參與其開發的人所喚醒。 Linux下多線程下的速度在提問者問這個問題的時候已經得到了迅速的改善(2009):http://think-async.com/Asio/LinuxPerformanceImprovements

Windows下的速度一直很好。我最大的抱怨就是UDP套接字的設計,它的實現很差。