Название: QUdpSocket, приоритеты и тормоза Отправлено: Pavlya от Апрель 08, 2013, 14:10 Здравствуйте. Пишу udp сервер и с толкнулся с такой проблемой: сервер запущен в отдельном потоке и принимает датаграммы каждые 20 mS. Приоритет потока поднят до приоритета реального времени (QThread::TimeCriticalPriority). Чтение поступивших данных осуществляю по сигналу readyRead(). Пакеты приходят, сервер их разгребает. Все хорошо до того момента, пока я не запускаю браузер на этой же машине. В момент старта браузера происходит задержка пакетов (delay spike), а затем они все сваливаются на сервер. Теперь о проблеме: задержка в момент запуска браузера (измеренная c помощью WireShark) составляет около 200 mS. Эта же задержка, измеренная с помощью QElapsedTimer в слоте сервера составляет около 800-900 mS. Грешу на network модуль от Qt (а точнее на поток), в котором происходит отслеживание состояния сокетов в ОС. В process explorer вижу свой поток, который запущен с TimeCriticalPriority приоритетом и поток обработки событий сокетов, у которого нормальный приоритет. И он, похоже, тормозит все дело. Есть ли возможность поднять его приоритет?
|