假如應用程序需要的堆大于總物理內存的一半,則請設置 mx 參數。在 IBM Developer Kit for Windows,Java Technology Edition, 版本 1.1.8 中,mx 參數的默認值是總物理內存大小的一半。
假如您的應用程序經常依靠于終止函數 (finalizer) 的操作,則需要減小 mx 設置的大小。(注:我們建議您避免這種代碼設計。) 在 IBM Developer Kit for Windows,Java Technology Edition 中對堆增長有更好的支持 對于 Java 服務器應用程序,假如您發現沒有達到最優性能,我們建議您檢查堆的大小。IBM 通過智能地增大堆解決了這一普遍存在的 Java 問題。這種技術在 IBM Developer Kit for Windows,Java Technology Edition,1.1.7 版本中首次出現,并在 IBM Developer Kit for Windows and OS/2 Warp,Java Technology Edition,1.1.8 版本中得到增強。有了這些 JVM,用戶幾乎不需要設置堆大小;與智能增長搭配的初始默認值一般就足夠了。
可能的負面影響 增大堆大小可以提高吞吐量,但會增加停頓時間。這是因為搜集大型的堆可能需要幾秒鐘的時間,但垃圾收集次數會減少。盡管這種偶然的響應時間變長對于直接通過 LAN 與服務器連接的客戶機至關重要,但以響應時間的變長來換取吞吐量的增加是值得的。堆大小是一個體系結構問題,它取決于應用程序的用途。在 IBM Developer Kit for Windows and OS/2 Warp,Java Technology Edition,1.1.8 版本中,垃圾收集和堆增長的治理都是基于活動對象,因此停頓時間對性能的影響比在 1.1.7 版本中更小。
ms 參數 ms 參數更為簡單。假如您擔心內存利用率和擴展的開銷,則請將 ms 值設為 mx 的值。否則,就不要設置 ms。請注重,在 IBM Developer Kit for Windows and OS/2 Warp,Java Technology Edition,1.1.8 版本中,堆的大小既可以減小,也可以增大。因此,假如 ms 被設為某一值,堆則不能減小到該值以下。