Насколько эффективен API inotify Linux? - PullRequest
3 голосов
/ 17 мая 2011

Я понимаю, inotify изначально был разработан для облегчения определенных типов задач управления файловой системой, таких как индексация, инкрементное резервное копирование и т. Д.

С учетом вышесказанного.Является ли API inotify достаточно эффективным, чтобы его можно было использовать как простую, но эффективную систему обмена сообщениями между процессами?

В качестве относительной точки отсчета ... как это можно сравнить с чем-то вроде, о, JMS поверх ActiveMQкогда используется таким образом?

Ответы [ 2 ]

4 голосов
/ 18 мая 2011

Я не совсем уверен, что вы имели в виду под inotify, но это немного злоупотребляет тем, для чего они предназначены, и существуют лучшие средства IPC.Очереди сообщений трудно превзойти по производительности и простоте использования, если вы передаете ограниченные сообщения разумного размера.

Я бы предложил POSIX MQ поверх варианта SysV, который предлагает Сехе.У них даже более чистый интерфейс, очереди создаются с помощью пути к файловой системе, и вам не нужно связываться с ключами IPC;Вы можете ls или rm очередь из командной строки.Они могут использоваться с select () как еще один дескриптор файла для мониторинга.mq_notify () может сигнализировать или создавать новый поток, когда появляется новая запись в очереди.Они чертовски гибки.

2 голосов
/ 17 мая 2011

Если вы хотите сделать простой обмен сообщениями, просто используйте msgget, msgsnd и msgrcv;

man mq_overview, чтобы получить представление.Это встроенная ОС начиная с ядра 2.6.6 и Glibc 2.3.4.

Это будет зависеть от производительности, а интерфейс, если что-нибудь, просто смехотворно прост.


AСправочный пример здесь: http://www.cs.cf.ac.uk/Dave/C/node25.html

...