Добрый день всем.
Приложение, работающее с QUdpSocket, разрабатываю под Qt5.1.0.
UDP-пакеты приходят на комп снаружи от некоего девайса (не компьютера), программа при приеме пакетов производит контроль потерянных(не_прибывших/потерявшихся) пакетов.
При передаче пакетов внешний девайс постепенно наращивает скорость передачи.
На определенном этапе, при некоторой скорости пакетов, программа на компе начинает терять пакеты и вообще как-то зависает, и перестает реагировать на нажатия кнопок и т.п. Имею предположение, что программа очень плотно занята обработкой принятых пакетов. Видимо пакетов накапливается больше, чем успевает обрабатываться, и программа практически постоянно находится в обработчике сигнала
readyRead сокета.
Определив максимальную частоту пакетов, при котором программа не виснет и не теряет пакеты, я поставил рамки по скорости потока для внешнего девайса.
Недавно мой проект перекочевал под Qt5.3.1 и случилось какое-то ЧУДО, программа уже не зависает и не теряет пакеты при бОльшей частоте поступления UDP-пакетов.
Взял "старый" ехе-шник, собранный под Qt5.1.0, подкинул ему все библиотеки от Qt5.3.1, и программа тоже заработала быстро (по сравнении с работой при старых библиотеках).
Кто-нибудь может объяснить, в чем получился прикол?
Думается, что с еще более новыми библиотеками скорость работы моего приложения может еще подрасти