Java JDK 32 bits vs 64 bits



我正在创建一个非常简单的应用程序,它可以读取和显示文本文件并进行搜索。

我在问自己是否有兴趣向用户推荐32位和64位版本。

与64位版本相比,区别仅仅在于可以访问更多的内存堆大小吗?或者还有其他兴趣吗?

一个32位编译的程序会在64位JVM上工作吗(我认为是的)

任何程序的32位和64位构建之间的唯一区别是机器字的大小、可寻址内存的数量和使用的操作系统ABI。对于Java,语言规范意味着机器单词大小和操作系统ABI的差异应该根本不重要,除非您也使用本机代码。(本机代码必须构建为与加载它的JVM的字大小相同;如果没有非常奇特的编码,就不能在同一过程中混合32位和64位构建,而且Java不应该这样做。)

对我来说,唯一一次改变它的是当涉及到以某种方式推动它的本地库时。如果您只是在Java领域,那么现实地说,除非您需要>4GB的堆大小,否则差别很小。

编辑:不同之处包括它使用的内存略多于32位,如果你使用的是6u23之前的版本,而不是-XX:+UseCompressedOops,则会明显更多。两者之间可能也有轻微的性能差异,但同样没有什么大的差异。

最新更新