JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
配置建议:
- -Xms与-Xmx的值最好相同,避免每次垃圾回收完成JVM重新分配内存。-Xmn的值大致设置为-Xmx的1/4~1/2即可,辞职对系统性能影响较大,Sun官方推荐配置为整个堆的3/8.
- 如果java因公大量动态Class挤爆PermGen Space的情况,可以考虑增大"-XX:PermSie"和“-XX:MaxPermSize"这两个参数来避免。