Little-endian все еще быстрее на процессорах Intel, или не имеет значения, анализирую ли я big-endian на Intel?
Это было в прошлых архитектурах. Это все еще так? Я читаю из сети в байтовые буферы в Java.
В основном, будут ли считываться байты в Intel, использующие big-endian вместо little-endian, разницу в производительности? Я знаю, что intel является прямым порядком байтов, но когда вы читаете из байтового буфера ОС, вы можете читать с прямым порядком байтов или прямым порядком байтов.
1 ответ
Вы не можете выбирать. Процессоры (с очень небольшим числом исключений) фиксируются в порядке их байтов, поэтому, когда у вас есть данные для манипуляции, вы ДОЛЖНЫ поместить их в соответствующий формат для вашего ЦП. Это не выбор и не проблема производительности: это только то, что должно быть сделано.
Единственный раз, когда это происходит, это при сериализации данных. Многие распространенные сетевые протоколы были разработаны с прямым порядком представления данных. Если вы читаете эти байты прямо в память на процессоре Intel, вам нужно поменять местами байты, чтобы сделать их байтовыми, прежде чем вы сможете работать с ними. Это не имеет большого значения, и опять же, это не выбор - сетевой протокол такой, какой он есть, и у вас нет выбора относительно того, как подключить устройство к сети, если вы хотите, чтобы другие системы могли понять ваши пакеты.