现在有两种CPU架构,大端和小端。因此,数据需要在两种表示形式之间进行转换。每个CPU体系结构,特别是指令集,都是不同的,并且每个体系结构都允许不同的实现来改变字节顺序。一些CPU包含特定的指令,而其他CPU则不包含。
我的问题是,对于今天的体系结构,为了最小化数据转换延迟,从而最大化BE到LE通信中的吞吐量,在LE体系结构或其他方式上进行数据存储和转换是否更有效率。
第二个问题,转换成本是否可以量化,有没有相关数据?
在Java中,这种从字节数组转换的开销有多大?是否有关于特定架构上的特定JVM的数据?在Dalvik上有什么不同吗?
与此相关的架构有x64、ARM、MIPS和JVM/Dalvik。我错过了什么吗?
发布于 2014-02-01 09:47:03
存储数据是计算机做的最基本的事情之一,为什么只有几个架构相关?所有体系结构都必须遵循特定的字节顺序(例如x86/x86_64)或双字节序(ARM、MIPS...)如果它们字长是比八位字节更大的
但是,即使体系结构是双字节序的,也必须在启动时设置字节序,并且CPU仅在该字节序模式下工作,直到更改模式并重新启动所有内容。CPU不能处理字节顺序颠倒的数据。因此,数据应该始终使用原生字节顺序,除非您只复制值,然后不进行任何处理就将其发回,或者执行一些与字节顺序无关的非常简单的操作,如按位操作
网络活动比CPU慢得多,甚至比不上RAM的速度。您几乎看不到速度上的任何差异,但很可能会受到内存限制
https://stackoverflow.com/questions/21490075
复制相似问题