Russian Qt Forum
Ноябрь 23, 2024, 17:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Qt + boost::asio - простейший симбиоз  (Прочитано 15286 раз)
Barmaglodd
Гость
« Ответ #15 : Март 23, 2012, 18:30 »

Тю у меня сервер на Qt4 тянет 500 клиентов. Переписываю на asio только из-за того что необходимо тянуть 2500 клиентов.
А точно ли asio даст эти 2000? Под профайлером смотрели где затык?
Плюс Эрланга в том, что код стал проще, понятней и короче. А разбирать двоичные протоколы на нём намного проще чем на C/C++, особенно когда в одном пакете смесь полей в BCD и чисел с разным порядком байт.
Записан
BRE
Гость
« Ответ #16 : Март 23, 2012, 18:44 »

А как тогда ты из буфера вытягиваешь данные с нужным порядком байт?
Есть готовые решения. Я пользовался библиотекой msgpack, есть решение от Google, еще что-то смотрел.
Записан
V1KT0P
Гость
« Ответ #17 : Март 23, 2012, 18:56 »

А как тогда ты из буфера вытягиваешь данные с нужным порядком байт?
Есть готовые решения. Я пользовался библиотекой msgpack, есть решение от Google, еще что-то смотрел.

Спасибо посмотрю. Но все-равно в asio что-то должно же быть, это же сетевая библиотека. Я глядел на классы с названием buffer и stream, все они какие-то стремные.
А пока остановился на побайтовом memcpy в обратную сторону, как временное решение пойдет.
Записан
BRE
Гость
« Ответ #18 : Март 23, 2012, 19:00 »

Спасибо посмотрю. Но все-равно в asio что-то должно же быть, это же сетевая библиотека. Я глядел на классы с названием buffer и stream, все они какие-то стремные.
А пока остановился на побайтовом memcpy в обратную сторону, как временное решение пойдет.
Для текстового протокола хватает std::string, а если хочешь бинарный можно посмотреть на boost-овскую Serialization. Но я не захотел на нее завязывать большой коммерческий проект, поэтому остановился на msgpack.

Записан
V1KT0P
Гость
« Ответ #19 : Март 23, 2012, 19:59 »

Спасибо посмотрю. Но все-равно в asio что-то должно же быть, это же сетевая библиотека. Я глядел на классы с названием buffer и stream, все они какие-то стремные.
А пока остановился на побайтовом memcpy в обратную сторону, как временное решение пойдет.
Для текстового протокола хватает std::string, а если хочешь бинарный можно посмотреть на boost-овскую Serialization. Но я не захотел на нее завязывать большой коммерческий проект, поэтому остановился на msgpack.
Протокол бинарный и мне нужна банальнейшая вещь: извлекать из потока примитивные типы(с возможностью выбрать порядок байт). boost-овский Serialization это как стрельба из пушки по воробьям.
Проще наверно самому написать. Я думал такая банальная вещь есть хотя бы в boost.
Записан
V1KT0P
Гость
« Ответ #20 : Апрель 03, 2012, 10:29 »

Кто знает как назначить приоритет или поток strand-у. А то много мало-приоритетных задач иногда надолго вытесняют несколько очень приоритетных задач?
Записан
niXman
Гость
« Ответ #21 : Апрель 20, 2012, 02:19 »

asio держит 200000 коннектов на 4ех сетевухах и 8ми рабочих потоках.
при этом, имею ~4800000 сообщений в две стороны в сумме в секунду.

для манипуляции порядком байт, есть boost.endian. пока лежит в sandbox`е.
Записан
V1KT0P
Гость
« Ответ #22 : Апрель 20, 2012, 09:32 »

asio держит 200000 коннектов на 4ех сетевухах и 8ми рабочих потоках.
при этом, имею ~4800000 сообщений в две стороны в сумме в секунду.

для манипуляции порядком байт, есть boost.endian. пока лежит в sandbox`е.

Ну так поменять порядок это не проблема. Мне нужен был класс который из потока будет вытягивать данные учитывая порядок. Написал свой, при чем написание заняло меньше времени чем поиск существующего =).
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 20.