我是用x64 JDK编译的吗?

时间:2010-05-04 18:52:13

标签: java

我的机器上安装了64位JDK吗? 我的java -version说: C:\ Documents and Settings \ Administrator> java -version

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

我是否期望使用64位编译器而不是32位编译器的性能提升? 谢谢, 麦克

3 个答案:

答案 0 :(得分:3)

是的,它说Java Hotspot(TM)64位。关于64位与32位JVM性能,64位JVM的主要优点是地址空间更大。请参阅Hotspot FAQ

  

运行Java的主要优点   在64位环境中是更大的   地址空间。这允许很多   更大的Java堆大小和增加   最大Java线程数,即   特定种类的大型需要   或长期运行的应用程序。该   这样做的主要并发症   端口是一些原生的大小   数据类型已更改。不   令人惊讶的是,指针的大小是   增加到64位。在Solaris和   大多数Unix平台,C的大小   语言长也增加到64   位。 32位中的任何本机代码   依赖于SDK的SDK实现   这些数据类型的旧大小是   可能需要更新。

答案 1 :(得分:2)

我不希望64位编译器有任何出色的性能提升,没有。

答案 2 :(得分:2)

编译器,一旦到达运行时就不会有所作为。 Java编译为字节码,输出独立于用于运行编译器的体系结构。

可能看到32位编译器和64位编译器之间的不同编译时间,就像你可能会看到32位和64位运行时之间的不同运行时间一样(但运行时去在JRE下,而不是JDK)。这取决于它们针对该体系结构(x86 / x64)的优化程度,但是一个不会影响另一个(慢速编译并不意味着执行速度很慢,反之亦然)。

(当然,这假设两个编译器的位数不同,并且他们没有应用不同的优化集,或者做一些稍微不同的事情。)