2011-05-17 56 views
2

據我所知inotify最初是爲了方便某些類型的文件系統管理任務,如索引,增量備份等而開發的。Linux inotify API的效率如何?

就是這樣說的。 inotify API是否足夠高效,可用作簡單但有效的進程間消息傳遞系統?

作爲一個相對的參考點......它是如何比較類似的東西,哦,在這種方式使用ActiveMQ的JMS?

+1

(另外,[D-Bus](http://en.wikipedia.org/wiki/D-Bus)?) – 2011-05-17 19:07:50

回答

3

我不知道你腦子裏究竟有inotify的,但是這一點他們是什麼更好的IPC設施存在的濫用。假設您傳遞的是合理大小的有界消息,消息隊列在性能和易用性方面難以打敗。

我建議POSIX MQs sehe建議的SysV變種。他們有一個更清潔的界面,隊列創建一個文件系統路徑條目,你不必亂搞IPC鍵;您可以從命令行輸入或輸入隊列。他們可以使用select()作爲一個文件描述符來監視。當有新的隊列條目時,mq_notify()可以發信號或創建一個新的線程。他們非常靈活。

+0

消息隊列描述符不一定是文件描述符。儘管Linux和FreeBSD使用文件描述符實現POSIX消息隊列,但Solaris實現基於共享內存和強大的互斥鎖,這可能更有效。 – jilles 2011-05-17 21:16:42

+0

@jilles - 我知道,也許我應該明確表示出來,但是OP有linux和linux-kernel標記,而我並沒有一般思考。好的警告,但。 – Duck 2011-05-17 21:45:36