Мне бы хотелось узнать ваше мнение о следующей ситуации и моем решении:
Я получил 3 процесса:
В основном есть список (размером около 100 элементов) структур, которые выглядят примерно так:
struct Dummy {
float f[16];
}
Мой локальный сервер получает обновления от удаленного сервера, я не контролирую удаленный сервер, он отправляет свои обновления примерно 20 раз в секунду ( 20 Hz
).
Затем мой локальный сервер должен обновить мой локальный клиент точно такими же данными.
Локальный сервер & клиент на одной машине.
Я успешно реализовал очень простой клиент-сервер-PoC для местных жителей, использующих каналы. Клиент записывает в канал запросы, а локальный сервер записывает ответы, полученные от удаленного сервера.
Это не оптимизировано: в реальном мире клиенту не нужно отправлять какие-либо запросы, потому что заранее известно, какие именно данные ему нужны.
Я подумал сделать следующее, и мне интересно, будет ли это оптимизировано (мы говорим о 100 x 4 x 16 = 6400 bytes
для одного толчка данных, вокруг 20-30 Hz
так вокруг 150-200 kb per second
:
Локальный сервер создает канал и просто обновляет его, вокруг 20
раз в секунду, вокруг 6400 bytes
каждый раз и локальный клиент просто извлекает данные так быстро, как только может.
Интересно, может ли быть лучший способ — этот способ очень прост и легко реализуем, но мне интересно, насколько он эффективен.
Задача ещё не решена.
Других решений пока нет …