JVM 如何在 32 位处理器上处理原始的“long”,即 64 位?
能否在多核 32 位机器上并行使用多核?
32 位机器上的 64 位操作要慢多少?
最佳答案
它可能使用多个核心来运行不同的线程,但它不会并行使用它们进行 64 位计算。 64 位长基本上存储为两个 32 位整数。为了添加它们,需要进行两次添加,以跟踪进位位。乘法有点像将两个两位数相乘,只是每个数字都以 2^32 为底,而不是以 10 为底。其他算术运算也是如此。
关于速度的编辑:我只能猜测速度差异。加法需要两次加法而不是一次,乘法(我认为)需要四次乘法而不是一次。但是,我怀疑如果所有内容都可以保存在寄存器中,那么实际计算时间将与两次读取内存和两次写入内存所需的时间相比相形见绌,所以我的猜测是大多数时间的两倍操作。我想这将取决于处理器、特定的 JVM 实现、月相等。除非您正在进行大量的数字运算,否则我不会担心。大多数程序大部分时间都在等待磁盘或网络的 IO。
关于Java:VM 如何在 32 位处理器上处理 64 位 `long`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/237309/