В настоящее время я работаю над довольно крупным однопоточным, основанным на событиях, приложением, разработанным вокруг epoll под Linux и сопоставимыми технологиями на других платформах. В настоящее время, когда мы хотим, чтобы два экземпляра связывались, они обычно делают это через сокеты, независимо от того, работают ли они на одном компьютере или нет. По соображениям производительности я предвижу использование какой-либо формы IPC для ускорения такой же машинной связи. Теперь мне нужно решить, какой механизм IPC использовать.Выбор решения IPC для приложения, управляемого событиями
Следующие факторы очень важны для меня:
- событийного, без полной реконструкции - если механизм IPC не очень хорошо согласуется с Epoll, это месяцы работы потеряли для меня
- быстро - если этот механизм не быстрее, чем розетки, это не стоит времени реализации его
- гибкого и (вос) настраиваются во время выполнения - Я считаю, что это исключает MPI & аль
- нет многопоточности требуется.
Я готов использовать различные механизмы для разных платформ, если все они используют одну и ту же парадигму. Я также хочу получить настолько глубокий, насколько это необходимо, в C/C++/Obj-C для привязки к платформе.
Любое предложение?
Спасибо.
Кстати, розетки имеют гораздо более высокую производительность, когда они открыты на одном компьютере: http://stackoverflow.com/questions/1644851/sockets-on-same -machine-for-windows-and-linux/1650906 # 1650906 – 2010-12-06 10:38:48
Ну, по моему опыту, IP-разъемов нет. – Yoric 2011-01-24 13:44:28