В настоящее время я работаю над довольно большим однопоточным, основанным на событиях, приложением, разработанным для epoll под Linux и сопоставимых технологий под другими платформами. В настоящее время, когда мы хотим, чтобы два экземпляра обменивались данными, они обычно делают это через сокеты, независимо от того, работают они на одном компьютере или нет. По соображениям производительности я предполагаю использовать некоторую форму IPC для ускорения обмена данными с одной и той же машиной. Теперь мне нужно решить, какой механизм IPC использовать.
Для меня важны следующие факторы:
- управляемый событиями, без полной переделки - если механизм IPC не подходит для epoll, для меня потеряны месяцы работы
- быстро - если этот механизм не быстрее сокетов, не стоит тратить время на его реализацию
- гибкий и (пере) настраиваемый во время выполнения - я считаю, что это исключает MPI и другие
- многопоточность не требуется.
Я готов использовать разные механизмы для разных платформ, если все они используют одну и ту же парадигму. Я также готов как можно глубже изучить C / C ++ / Obj-C для привязок к конкретной платформе.
Любое предложение?
Спасибо.