Если вы используете свой ByteBuffer для чтения и сохранения байтов, порядок байтов не имеет значения, просто используйте значение по умолчанию.
Если вы читаете и пишете небайтовые типы примитивов (short, int, float, long, double), то базовый процессор должен будет выполнить дополнительную работу, если Endianness ЦП (ByteOrder.nativeOrder ()) отличается от по умолчанию Java Big Endianness. Если вы прочтете другие вопросы SO, с которыми вы связались, вы сможете понять, почему ... Процессору придется перебрасывать байты, чтобы выполнить любую работу со связанными примитивными типами. Эта операция перестановки (замены) байтов израсходует некоторые циклы ЦП.
Быстрый пример с использованием двух значений Short 1 и 2. Предполагается, что ваш процессор является процессором x86.
short A = 1;
short B = 2;
short C = A + B;
Если ваш собственный процессор ожидает порядка байтов
MOV ax, short[A] ; ax register [ 01, 00 ]
MOV bx, short[B] ; bx register [ 02, 00 ]
ADD ax, bx ; ax register [ 03, 00 ]
MOV short[C], ax ; C [ 03, 00 ]
И вы даете этому порядковый номер, он должен выполнять дополнительную работу.
MOV ax, short[A] ; ax register [ 00, 01 ]
MOV bx, short[B] ; bx register [ 00, 02 ]
BSWAP ax ; ax register [ 01, 00 ]
BSWAP bx ; bx register [ 02, 00 ]
ADD ax, bx ; ax register [ 03, 00 ]
MOV short[C], ax ; C [ 03, 00 ]
Итак, на самом низком уровне это имеет значение, но если вы не заметили / не профилировали серьезное узкое место в вашем коде, просто используйте значение по умолчанию.