Моделируется работа сети микроконтроллерных устройств в нормальном режиме общающихся по радиоканалу. В настоящий момент каждое из моделируемых устройств представляет собой отдельный ELF, работающий в отдельном процессе и общающийся с сервером через TCP (часть кода по работе с приемо-передатчиком заменена на код общения с сервером, остальной код такой же как и в микроконтроллерах). Сервер постоянно висит на poll()-е, протокол простой запрос-ответ.
В пределе моделируемых устройств будет до нескольких сотен, возможно тысяч, смотря насколько будет тормозить все это. Типов моделируемых устройств не так много (в настоящий момент 3), поэтому один и тот-же ELF работает как много однотипных устройств, разница в их поведении будет обусловлена пакетами, принимаемыми от других таких-же устройств.
Код исполняемый по запросу на каждом устройстве очень маленький и исполняется очень быстро, соответственно все тормозит на TCP.
Вопрос: чем можно заменть TCP? Я так поимаю любые другие средства IPC тут будут абсолютно так же тормозить?
Я уже как-то спрашивал, как загрузить много раз одну и ту же динимическую библиотеку так, чтобы у каждого экземпляра был свой сегмент данных, и решение которе нашел я - это создать много копий библиотеки и загружать их. Меня обсмеяли, конечно, но это хоть и криво, но позволяет добмться того, что нужно.
Есть вариант сделать свой простой загрузчик ELF-ов (их можно слинковать статически).
Какие еще есть варианты?