我們正在開發一個由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