Это было в прошлых архитектурах. Это все еще так? Я читаю из сети в байтовые буферы в Java.


В основном, будут ли считываться байты в Intel, использующие big-endian вместо little-endian, что повлияет на производительность? Я знаю, что intel является прямым порядком байтов, но когда вы читаете из байтового буфера ОС, вы можете читать с прямым порядком байтов или прямым порядком байтов.

1 ответ1

1

Вы не можете выбирать. Процессоры (с очень небольшим числом исключений) фиксируются в порядке их байтов, поэтому, когда у вас есть данные для манипуляции, вы ДОЛЖНЫ поместить их в соответствующий формат для вашего ЦП. Это не выбор, и это не проблема производительности: это только то, что должно быть сделано.

Единственное время, когда это происходит, - это сериализация данных. Многие распространенные сетевые протоколы были разработаны с прямым порядком представления данных. Если вы читаете эти байты прямо в память на процессоре Intel, вам нужно поменять местами байты, чтобы сделать их байтовыми, прежде чем вы сможете работать с ними. Это не имеет большого значения, и опять же, это не выбор - сетевой протокол такой, какой он есть, и у вас нет выбора в том, как подключить устройство к сети, если вы хотите, чтобы другие системы могли понять ваши пакеты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .