|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
Обработка поступающих данных без задержки основного цикла17.06.2011, 00:51. Показов 4547. Ответов 42
Метки нет (Все метки)
Получаю из какого-то соединения днс адреса сайтов. Считываю их из буфера в цикле. Один цикл - один днс. Нужно чтобы каждый днс переводился в ip и этот ip заносился вконец вектора. Но при этом основной цикл не должен тормозиться ни на миллисекунду, а функция преобразования dns -> ip всилу наличия пинга между моим компом и днс сервером и всилу наличия задержки у самого сервера - очень сильно тормозит... иногда на время более одной секунды. Что посоветуете в данном случае?
0
|
|
| 17.06.2011, 00:51 | |
|
Ответы с готовыми решениями:
42
Библиотека BASS (un4seen): возможна ли обработка звука в реальном времени без существенной задержки? Обновление данных в базе без задержки Обработка поступающих вложений doc |
|
|
|
| 17.06.2011, 22:15 | |
|
1
|
|
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 17.06.2011, 22:31 [ТС] | |
|
niXman, да нет, почему же жесть, async_resolve хорошее решение... но при многопоточности в отдельном потоке можно сразу попутно решать и другие задачи подобного рода, pthread является более универсальным решением...
0
|
|
|
|
|||
| 17.06.2011, 22:55 | |||
![]() ![]() Добавлено через 6 минут вах! так ты же еще и с сокетом работаешь! самое время задуматься над использованием asio. и тут: https://www.cyberforum.ru/faq/thread317829.html
0
|
|||
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 17.06.2011, 23:17 [ТС] | |
|
У меня сейчас работает сервачек, написанный на селектах, держет не более 10 тыс соединений. Пол года назад здесь кто-то убеждали что лучшее решение epoll, а потом ещё один человек в аське рекомендовал использовать именно его, утверждая что приложение без всякой нагрузки потяент больше 50 тыс соединений ... на asio потянет еще больше?
0
|
|
|
|
|||||
| 17.06.2011, 23:34 | |||||
|
100 потоков со стами селектами? оО ибо на селект не рекомендуется и 1000 дескриптор вешать ![]() моя система говорит что может мониторить 324608. многовато как-то...
0
|
|||||
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 17.06.2011, 23:34 [ТС] | |
|
Вообще я не очень представляю себе как это работает... мне говорили что основная нагрузка именно в моем приложениии создается переключением между дескрипторами - поэтому распараллеливание не ускоряет работу таких приложений.. и я в тупике. Единственное решение нашел в будущем сделать несколько серваков и перегонять трафик между ними, так чтобы количество соединений между ними распределилось поровну...
0
|
|
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 17.06.2011, 23:38 [ТС] | |
|
Ошибся, я имел ввиду именно своё приложение
![]() От темы отошли, нехорошо...
0
|
|
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 17.06.2011, 23:42 [ТС] | |
|
Ещё один вопросик, если основную нагрузку создает переключение между дескрипторами, дескрипторы у каждого потока свои, и получается я могу снизить нагрузку созданием нескольких потоков, равномерным распределением дескрипторов по ним и сделать чтобы каждый рассылал данные по своим дескрипторам?
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||
| 18.06.2011, 12:18 | ||
|
И 50к конектов (если они не просто висят, а есть какой-то трафик) тоже почти утопия. А так да, например Сысоев показывал 100k конектов, только вот nginx при этом еле ворочался. Да и во обще если говорить о высоко нагруженных сетевых приложениях, на мой взгляд лучше забыть про Си и смотреть на Erlang Что, касается топика, к сожалению asio_resolver только ускорит процесс, но не снимет нагрузку, а наоборот создаст ее, т.к. использует системные getXXXbyYYY_r() Если же нужно и ускориться и не плодить оверхед на создание нитей, то лучше взять какую-нибудь библиотеку работающую с DNS самостоятельно, без системы, и (опционально) запускать ее в отдельном потоке. В качестве минуса это будет только DNS без всех возможностей NSS, а в качестве плюса если захочется что-то отличное от A/AAAA/PTR то ни вопрос.
1
|
||
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
|
| 18.06.2011, 13:49 | |
|
под сетевым интерфейсом какраз и понимается пара ип:порт, это может быть как вай фай карта, так и впн соединение.
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 18.06.2011, 14:37 | |
|
А я всю жизнь считал, что это зовется transport-level endpoint... ну да ладно.
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 18.06.2011, 17:25 | |
|
Поясняю, boost _не_ умеет работать с DNS сам, он всего лишь содержит обертки к системному ресолверу. Ни в glibc, ни в libc нет и вряд ли когда либо появятся не блокируемые функции для разрешения имен. Пояснять, что обертка делающая из блокируемой функции не блокируемую стоит дорого в плане ресурсов надо?
Так же по моему очевидно, что если можно пожертвовать files/nis/etc которые умеет системный ресолвер и взять что-то маленькое и быстрое типа adns или asr, то будет и быстрее и легче чем обернутое семейство getXXXbyYYY(), за одного появиться возможность ресолвить MX/NS/etc и использовать DNS сервера не из resolv.conf
0
|
|
|
|
|||
| 18.06.2011, 22:43 | |||
|
второе - "стоит дорого в плане ресурсов надо" - ну простите, я не заметил что сабж предполагается использовать на МК. третье - async_resolve я предложил для того, чтоб ТС`у не пришлось делать то, что ему нарекомендовали на второй странице(потоки/очередь/блокировки). четвертое - насколько я понял его архитектуру и проблему, я представил, что если резолв сделать асинхронным по отношению к тому потоку в котором у него что-то выполняется, то это избавит его от тормозов которые мешают каким-то вычислениям. а кода при этом - понты ![]() спасибо.
0
|
|||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 20.06.2011, 11:36 | |
|
Вы уж простите, ну "не калькулятор" ни разу не аргумент. Помниться ТС говорил про что-то типа 30 итераций в секунду, т.е. получиться 30 нитей, вроде и не очень много, но вот зачем???
Касательно "не придется делать и понты" вы же думаю прекрасно понимаете, что в потрохах async_resolv примерно тот же код, что и предлагается ТС, вот только вместо оптимального решения с одним потоком и очередью либо сразу куча потоков либо один поток на n имен. Писать то да, меньше, с этим никто не поспорит. А вот качество решения получается хуже.
0
|
|
|
|
|||
| 20.06.2011, 12:11 | |||
![]()
0
|
|||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 20.06.2011, 12:21 | |
|
про палец не понял.
Речь не о качестве кода, а о качестве решения. Если вы считаете ,что не в состоянии родить ничего лучше чем универсальные, а следовательно далеко не оптимальные решения boost, то могу только посочувствовать, но все таки думаю, что произошло не до понимание контекста.
0
|
|
| 20.06.2011, 12:21 | |
|
Помогаю со студенческими работами здесь
40
Обработка строк, поступающих через COM порт Реализация задержки с использованием цикла Передача данных в регистр без использование цикла Scanner без задержки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|