LINUX.ORG.RU

ACE vs boost::asio


0

0

Есть новый проект в котором сервер должен обрабатывать порядка тысячи запросов в секунду с гарантированной задержкой.

Есть некоторые наработки и опыт с АСЕ. Если начинать с чистого листа стоит ли повернуться в сторону boost:asio или ACE'у альтернативы здесь нет?

anonymous


тысячи/десятки тысч запросов в секунду - это уже пардно ручками и ни то ни другое тут особо не поможет :-/

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> тысячи/десятки тысч запросов в секунду - это уже пардно ручками и ни то ни другое тут особо не поможет :-/

ps: запрос == accept/read-write/close

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

Если есть опыт работы с ACE то лучше его и юзать.

а так думаю, что c такой нагрузкой asio при правильном использовании может справится. У меня сервер обслуживал порядка 500 TCP соединений и в пиковые моменты получал до 1500 сообщений - задержек более секунды не замечал.

Vinick ★★
()
Ответ на: комментарий от Vinick

> а так думаю, что c такой нагрузкой asio при правильном использовании может справится. У меня сервер обслуживал порядка 500 TCP соединений и в пиковые моменты получал до 1500 сообщений - задержек более секунды не замечал.

ну с 500ми соединениями без проблем справятся оба - и asio и ACE. если нагрузка примерно указанного порядка, то, несомненно, использовать asio. он и попроще будет в использовании и boost куда как больше распространён, чем ACE. плюс скорее всего будут использоваться и другие компоненты boost -> зачем городить огород из разнородных компонентов.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

плюс ко всему, если учесть тот факт, что г-н клалафуда приложил к asio свою руку, то есть гипотетическая возможность на получение какого-либо совета в использовании от автора(соавтора?) :).

Deleted
()
Ответ на: комментарий от Deleted

> плюс ко всему, если учесть тот факт, что г-н клалафуда приложил к asio свою руку, то есть гипотетическая возможность на получение какого-либо совета в использовании от автора(соавтора?) :).

ммм.. откуда такая информация :-? нет, к разработке asio я не имею никакого отношения, разве что как пользователь. в ACE приходилось исправлять баги, но это было давно и по мелочам.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> ну с 500ми соединениями без проблем справятся оба - и asio и ACE. если нагрузка примерно указанного порядка, то, несомненно, использовать asio. он и попроще будет в использовании и boost куда как больше распространён, чем ACE. плюс скорее всего будут использоваться и другие компоненты boost -> зачем городить огород из разнородных компонентов.

ps: впрочем, если пугает "особая шаблонная магия" а boost::bind() вводит в ступор, то тогда, возможно, asio не лучший вариант.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

в одном из своих постов ты об этом упоминал. по всей видимости я тебя с кем-то спутал :)

Deleted
()

стоит посмотреть на asio, ACE уж больно монстроидален. Я использовал и тот и другой и выбрал asio, в комбинации с boost.thread он дает великолепные результаты. На asio я даже писал коммерческие продукты - полет нормальный :-)

у меня есть пара небольших заметок с примерами использования asio. Они доступны с http://xtalk.msk.su/~ott/ru/cpp/

ott ★★★★★
()
Ответ на: комментарий от klalafuda

> ps: запрос == accept/read-write/close

А мультиплексировать как? Тоже ручками? Самому предлагаешь писать обертку над select/epoll/kqueue/'/dev/poll' ? Может уже готовое взять?

asio справляется без проблем с нагрузкой ~5000 в секунду. Если нужен низкоуровневый доступ к сокетам и не нужна бустовская мутотня, то лучше взять libevent.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.