假如应用程序需要的堆大于总物理内存的一半,则请设置 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 被设为某一值,堆则不能减小到该值以下。