Масштабируемость повышения. Asio

Мне любопытно, как далеко другие продвинули Повышение. Asio с точки зрения масштабируемости. Я пишу приложение, которое может использовать близко к 1 000 объектов сокета, горстке акцепторных объектов и многим тысячам объектов - таймеров. Я настроил его таким образом, что существует вызов пула потоков io_service::run и используйте strands в соответствующих местах для обеспечения моих обработчиков не топают друг на друге.

Моя платформа является Red Hat Enterprise Linux с Повышением 1.39, хотя я не настроен против обновления до более поздней версии повышения.

6
задан Sam Miller 26 February 2013 в 17:11
поделиться

2 ответа

Мы используем 1.39 на нескольких вариантах Linux для таймеров, сетевых (TCP и UDP), последовательных (20+ линий, две из которых работают на скорости 500 кбит/с) и inotify событий, и хотя у нас не так много сокетных соединений, у нас есть несколько сотен асинхронных таймеров в любое время. Они используются в производстве и работают хорошо, для нас. На вашем месте я бы создал быстрый прототип и протестировал его на производительность.

Boost 1.43 заявляет о ряде специфических для Linux улучшений производительности ASIO, но мне еще предстоит проверить их на нашем продукте.

9
ответ дан 8 December 2019 в 15:59
поделиться

Я использовал boost asio с клиент-сервером, где на сервере несколько сотен одновременных подключений в течение всего дня. Каждый сеанс выполняет множество операций чтения / записи по несколько часов каждый. Я бы рекомендовал использовать последнюю версию boost asio. Я не могу вспомнить версию 1.39, но у меня были проблемы со старыми версиями. Текущая версия boost asio кажется стабильной.

Программное обеспечение, о котором я говорю, работает только в Windows, я также должен упомянуть, что отличается от вашей ситуации.

6
ответ дан 8 December 2019 в 15:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: