powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Очень быстрый прием UDP пакетов
25 сообщений из 53, страница 2 из 3
Очень быстрый прием UDP пакетов
    #39902765
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и сниферы тогда другую картину бы показывали, если бы передача ненадежна была
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902768
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, в документации сказано, что более одного пакета не примешь, хоть 65000 ставь
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902770
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, только прием
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902771
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
_Vasilisk_, у меня сеть без маршрутизатора
cptngrb
с локалки на виртуалку
Ну да, а хост-машина уже маршрутизатором не является?

Третий раз вам говорю - посчитайте байты
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902777
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, ща посчитаю
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902780
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
байты посчитаны, картина та же
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902783
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
как в потоке без try..except?
я ж не про поток вообще а про каждую итерацию цикла
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902787
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan, в этом конкретном случае согласен
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902792
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_А если по дороге злостный маршрутизатор с MTU = 512? Пакет в топку?

Да. И это - главная фишка UDP.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902793
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb, со мной можно и не соглашаться, тут компайлер диктует правила
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902806
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan, мне не понятно про управляемые типы в цикле. как по другому в этом случае ловить?
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902810
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb, не ловить в цикле, тем более в этом конкретном примере, где ловить нечего. ну и вообще избегать использования управляемых в циклах, заодно узнав сколько и каких неявных там генерится
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902842
bluestreak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не создавайте буфер на стэке. Создайте один раз и передавайте в функцию. Стеку не нужно расширяться и сжиматься в цикле, и компилятор должен будет in-line вашу функцию тем самым сэкономив на вызове
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902847
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bluestreak
Не создавайте буфер на стэке. Создайте один раз и передавайте в функцию. Стеку не нужно расширяться и сжиматься в цикле, и компилятор должен будет in-line вашу функцию тем самым сэкономив на вызове


Cтек "расширяется" одной машинной инструкцией. Тут не может быть "бутылочного горлышка".
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902852
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bluestreak, это как?
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902879
bluestreak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cptngrb
bluestreak, это как?


Создайте:

Код: plaintext
1.
2.
3.
var
  sizePacket: LongInt;
  Buffer: array [0..DefBufferSize-1] of byte;

В вызывающем методе
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902880
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bluestreakВ вызывающем методе

По сравнению с обработкой исключений локальные переменные - сущая мелочь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902882
bluestreak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Квейд
bluestreak
Не создавайте буфер на стэке. Создайте один раз и передавайте в функцию. Стеку не нужно расширяться и сжиматься в цикле, и компилятор должен будет in-line вашу функцию тем самым сэкономив на вызове


Cтек "расширяется" одной машинной инструкцией. Тут не может быть "бутылочного горлышка".


Дело не в количестве инструкций а в CPU cache consistency. Да и не сложно попробовать. Непоймать 9000 сообщений в непрерывном цикле это либо компилятор нагенерил что-то не то либо recv() под крышкой что-то делает. Вообще на unix recv() это для TCP, для UDP это recvmsg(). Но я в Делфи не спец, может там своя терминология
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902885
bluestreak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

bluestreakВ вызывающем методе

По сравнению с обработкой исключений локальные переменные - сущая мелочь.


Возможно. Хотя странно если туда код не заходит. В Java стоимость try catch будет стремиться с нулю. Делфи — не знаю
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902963
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb,
  • у тебя просто поток засыпает скорее всего, поставь ему .Priority := tpHighest;
  • зачем в потоке "перевожу сокет в неблокирующий режим"? ОС лучше распределит, и возможно даже не придётся использовать tpHighest
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39902969
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)зачем в потоке "перевожу сокет в неблокирующий режим"?

А у него ещё и это есть? "Слона-то я и не приметил." Тогда да, тут уже точно удивляться
нечему.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39903011
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan), в самом первом посте при чуточке внимания вы увидите, что поток запускается с приоритетом tpHighest

Dimitry Sibiryakov, если сокет в неблокирующем режиме кол-во пакетов не меняется
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39903016
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbесли сокет в неблокирующем режиме кол-во пакетов не меняется

Убери установку буфера, неблокирующий режим и обработку исключения. Тогда можно будет
говорить глубже.

PS: tpHighest тоже убери, оно вполне может вредить в данном случае.
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39903018
pvv.pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

facepalm
...
Рейтинг: 0 / 0
Очень быстрый прием UDP пакетов
    #39903020
pvv.pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@cptngrb,

выстави размер приёмного буфера >= 16МБ через SetSockOpt. Через гигабитную сеть мы прокачивали до 700 МБ/с без потерь, причём через свич. Для этого мы везде разрешали Jumbo frame (8196 байт) и выравнивали объём передаваемых данных на соответствующий размер. Данные инкапсулировали в свой протокол содержащий в т.ч. контроль на потери - счётчик.
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Очень быстрый прием UDP пакетов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]