64位Java平台的优点

我是java平台的绝对n00b我想知道我是否需要更改代码中的任何内容才能获得64位JRE的好处?

或者它是什么时候我用“java -d64”启动它会以某种turbo模式运行?

非常感谢您的帮助

我以前的版本,虽然不是假的,但很快就被过度简化了。

从32位更改为64位不会自动使您的应用程序运行得更快,在某些情况下可能导致相反的情况。 在“否定”方面,对JVM中的内存指针进行解引用可能需要更长的时间,64位指针比32位。 完全垃圾收集和16 GB堆的压缩可能比2 GB堆需要更长的时间。

从积极的方面来看:有64位处理器指令比32位指令更有效。 64位JVM将允许您的堆大小比32位大2 ^ 32倍,稍微小于4 GB。 (如果你有能力购买那么多的RAM)如果你的堆大小小于4 GB,一些JVM可以使用压缩引用,这样就可以获得64位指令的优势,而无需支付64位的参考价格。

如果你有一个好的JVM,无论堆大小如何,我都会使用64位,只需要准备好你可能不得不因为拥有一个非常大的堆而受到性能影响。

我不认为64位JVM会获得应用程序的性能吗? 怎么样?

实际上64位处理器有点慢。 它们具有更复杂的解码流水线(向后支持32位操作)。 他们需要更多的内存吞吐量(所有指针都是双倍大小的吗?)。 你在64位处理器上唯一拥有的是大量的RAM。 正如我们所知,大小就是速度。 很多RAM可以很好地获得某些应用程序的性能(如果应用程序可以使用它)。 所以64位 – 没有。 很多内存 – 肯定是的。

64位处理器还可以做得更快。 primefaces写入/读取64位数字。 如果你使用64位数字(在Java中长)64位处理器会更好,因为他们有机器CAS指令来处理这种数字。

不,你不需要改变任何东西。 使用64位没有固有的好处。 实际上它会使你的程序在内存中变大,因为所有指针都将变为64位宽而不是32位。

当您进行64位计算时,唯一的优势就在于,例如在代码中使用大量“long”,或者您的应用需要超过4gb的内存。

因为执行代码的JVM应该表现相同(整数总是32位签名等),所以无论您运行什么平台,您的代码都保证(理论上)运行相同。

32/64位差异在于JVM如何优化运行时。 因此,虽然执行的字节码保持不变,但它可能(或可能不)以不同的方式进行优化。

简而言之,运行Java的64位系统可能比32位系统等效系统更快地执行代码。

你应该不做任何改变。 与C或C ++不同,Java有一个为其编写的规范,可确保无论您使用何种平台,整数(和其他数据类型)始终具有相同的长度。

您的应用程序代码中是否有任何JNI? 那么也许你需要担心32对64位原生二进制文件。

32或64与Java代码完全相同。 以前的海报似乎已经很好地涵盖了表演方面。

是的,你不需要改变任何东西。 这是不同的JRE,而不是你编写的代码。

我发现64位JVM比32位版本慢。 然而,对于最新版本的Java 6更新14,我看到我的许多测试在64位版本和32位版本上稍微快一些。 无论哪种方式,只有5%到10%的差异。

您的程序是使用32位还是64位版本取决于您使用的JVM的选择。 如前所述,您需要检查是否有适当的共享库。 (或者理想情况下没有)

主要区别在于,如果需要4 GB或更多,则能够使用更多内存esp。

尝试这个:

public class Benchmark { public static void main(String args[]) { long time = System.currentTimeMillis(); for (int a = 1; a < 900000000; a++) { for (int b = 1; b < 20; b++) { } } long time2 = System.currentTimeMillis() - time; System.out.println("\nTime counter stopped: " + time2); 

}

在32位和64位并嘲笑差异。