Моим первым предположением будет то, что ваше приложение связано с вводом-выводом, а не с процессором, как это типично для сетевого программного обеспечения.Это будет означать, что пропускная способность сетевой карты является узким местом, а не производительность процессора.Вы можете протолкнуть через сеть только определенное количество пакетов, и если ваши операции с каждым пакетом не очень сложны, вполне вероятно, что вы будете насыщать свой сетевой адаптер, прежде чем насыщать свой ЦП.
Проверяли ли вы, чтодействительно ли количество отправленных пакетов все еще увеличивается во время выравнивания вашего профиля ЦП?Если причиной является сетевая карта, вы должны увидеть в какой-то момент, что отправляющая сторона не может отправлять больше пакетов за единицу времени, потому что получатель не может получить их так быстро.В краткосрочной перспективе это может быть сглажено путем буферизации, но не в долгосрочной перспективе.Одна возможность состоит в том, что, поскольку вы используете UDP, а не TCP, возможно, пакеты отбрасываются без уведомления, если сеть не может их обработать.Таким образом, с точки зрения отправителя похоже, что они отправляют много-много пакетов, но на самом деле только немногие приходят.Может быть, вы должны установить счетчик в своем приложении и отображать количество правильно принятых пакетов за единицу времени один раз каждые 10000 пакетов или около того.Затем вы узнаете, теряете ли вы пакеты из-за достижения пропускной способности сети (что объясняет ограничение использования ЦП).Если вы действительно правильно получаете эти пакеты, то причина, вероятно, в чем-то другом - но я бы сначала проверил это.