Тогда я вас не понимаю. Как можно измерить количество отправляемой информации за 1 секунду, если эту информацию никто не принимает?
Никак. Ведь на отправляющей стороне вы в стороне от самого процесса отправки.
А вот если будет принимающая сторона, то она как раз и измеряет количество принятой информации. И если буфер маленький, часть (большая) пакета будет теряться.
Принимающая сторона есть. И там можно посмотреть что все данные пришли. Но клиент то не знает о принимающей стороне ничего, так что скорость отправки сообщений ни как не может зависеть от размера буфера приемника. Главный вопрос, почему writeDatagram() работает так медленно, когда у него в распоряжении канал в 10 Гбит/с.
ps. Согласен, что у меня измеряется не сама скорость передачи, а скорее (размер пакета) * (количество удачных завершений writeDatagram()). Принимающая сторона показывает такую же скорость (~1 Гбит/с). Ниже прикрепил график изменения скорости при изменении размера пакетов.