在英特尔处理器上,小端序是否仍然更快,或者我在英特尔上解析大端序是否无所谓?

在英特尔处理器上,小端序是否仍然更快,或者我在英特尔上解析大端序是否无所谓?

过去的架构中曾经出现过这种情况。现在还是这样吗?我正在用 Java 从网络读取数据到字节缓冲区中。


基本上,在英特尔上使用大端而不是小端读取字节会对性能产生影响吗?我知道英特尔是小端的,但是当您从操作系统字节缓冲区读取时,您可以以大端或小端读取。

答案1

您无法选择。处理器(极少数例外)的字节顺序是固定的,因此当您有数据需要操作时,您必须将其放入适合您的 CPU 的格式中。这不是选择,也不是性能问题:这只是必须做的事情。

只有在序列化数据时才会出现这种情况。许多常见的网络协议都是采用大端在线表示设计的。如果您在 Intel CPU 上将这些字节直接读入内存,则必须交换字节以使其成为小端,然后才能使用它们。这不是什么大问题,而且再说一遍,这不是一个选择 - 网络协议就是这样,如果您希望其他系统能够理解您的数据包,您就没有选择如何将内容放在线上的权利。

相关内容