ByteBuffer против Buffer на пакетах дейтаграмм - PullRequest
3 голосов
/ 26 января 2011

Я читал, что ByteBuffer (java.nio) должен использоваться над классом Buffer для чтения данных просто потому, что он более эффективен (?).Мой вопрос вращается вокруг клиента UDP, который читает пакеты с адреса многоадресной рассылки и обрабатывает их в примитивные объекты.Каков наиболее эффективный / быстрый способ анализа этих пакетов из DatagramSocket?Прямо сейчас у меня есть пакет дейтаграммы, чей байтовый массив я оборачиваю ByteBuffer и читаю оттуда.Моя цель - минимизировать создание новых объектов и максимизировать скорость.

Ответы [ 2 ]

3 голосов
/ 26 января 2011

A DatagramSocket не может читать непосредственно в ByteBuffer, но вы можете сделать это, используя <a href="http://download.oracle.com/javase/8/docs/api/java/nio/channels/DatagramChannel.html" rel="nofollow">DatagramChannel</a>.

0 голосов
/ 05 июня 2011

Я думаю, что ByteBuffer следует использовать только потому, что у Buffer недостаточно функциональности, чтобы сделать доступ эффективным с точки зрения программиста, а не с точки зрения эффективности.Я сомневаюсь, что есть разница в эффективности, так как базовый код в основном дублируется.

Обратите внимание, что то, что более эффективно, чем использование простых байтовых массивов, не всегда понятно - производительность NIO легко недооценивать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...