Бинарный протокол будет намного быстрее здесь.Возьмите координаты, которые вы передаете, например.Когда вы транспортируете их как байты, они будут занимать 8 байтов на ось, тогда как строковое представление использует 2 байта на символ (если вы не переносите как ASCII, но даже тогда двоичный дубль будет меньше).
Тогда на самом деле превращение этой строки в число - намного больше работы;сначала необходимо создать подстроку, что приведет к дополнительным затратам на сборку мусора, затем нужно проанализировать число, что не быстро (но, честно говоря, вы все равно можете анализировать сотни тысяч удваивается в секунду), потому что .NET * double.Parse
носит очень общий характер и должен учитывать множество различных форматов.Вы бы получили заметную скорость, написав свой собственный двойной парсер на случай, если вы будете придерживаться текста, но, как я уже сказал, вы должны использовать двоичный код, если разбор сообщений является узким местом.Превращение байтов в двойные (с небольшим количеством волшебства unsafe
, что должно быть хорошо, если вы работаете на сервере и должен иметь режим полного доверия), это вопрос копирования 8 байтов.
Если ваши сообщенияв основном это просто координаты и тому подобное, я думаю, вы могли бы многое получить, создав собственный двоичный формат.