我有一個相當計算密集的Java基準程序,我正在Linux服務器上測試。它在我的Macbook上運行得很好。Java:內存限制隱藏在某處?
如果我在服務器上運行它,會發生以下情況:一旦內存佔用空間達到大約324 MB,程序就開始磨死。顯然,有些限制禁止使用更多的內存,垃圾收集器必須做更多的工作才能保持低於此限制。在某些時候,一個「GC開銷超過了」異常」被拋出。
我開始用java -Xmx16000m,以至於不能是內存限制。什麼是其他可能的限制?
這是Java版本我我使用:
的Macbook:
Java版本 「1.5.0_16」
的Java(TM)2運行環境,標準版(建立1.5.0_16-b06-284)
的HotSpot的Java(TM)客戶端虛擬機(建設1.5.0_16-133,混合模式,共享)
Linux服務器:
Java版本 「1.6.0_12」
的Java(TM)SE運行環境(建立1.6.0_12-B04)
的HotSpot的Java(TM)64位服務器VM(建11.2-B01,混合模式)
你怎麼指定-Xmx選項? JLink有點不直觀;有很多方法讓它默默地忽略你關於JVM的指令...... – 2011-07-17 00:24:17