我们正在开发一个由Java编写的swing应用程序,只需要大约128MB的内存,而在不久的将来,我不会看到它需要更多的内存,比如4GB。以前我们总是提供3个不同的版本,一个用于32位Windows,一个用于32位Linux,另一个用于64位Linux,安装包含JRE。 直到几个星期前,64位版本才被任何人使用,并且报告了OutOfMemoryException,因为该应用程序比32位版本消耗了大约40-50%的内存。64位操作系统上的32位或64位应用程序?
我的问题是,如果应用程序永远不需要使用超过4GB的内存,是否需要为64位Linux提供64位版本?我们进行了一些快速测试,发现32位版本也适用于64位Linux。但我不确定我们可能会有什么缺点,例如性能和/或兼容性问题?
让我澄清一点:32位版本正在使用128MB作为最大内存,对于64位版本,它可能需要192MB,所以我们不仅需要创建额外的64位安装程序,还必须创建不同的配置,这使得整个事情变得更加复杂。如果我们为所有版本使用192MB,那么它可能会让内存泄漏对我们来说不是那么明显,因为32位版本现在是最常用的了。还有一件事是,许多应用程序可以在该服务器上运行,所以我们希望尽可能降低内存消耗。 – 2011-03-03 09:36:17
如果您在64位JVM中使用32位引用,它不会需要更多的内存。 – 2011-03-03 09:58:48