手机
当前位置:查字典教程网 >编程开发 >Java >解析Linux系统中JVM内存2GB上限的详解
解析Linux系统中JVM内存2GB上限的详解
摘要:我们通常使用的JVM都是32位的(64位的JVM会损失10-20%的性能,通常不建议使用),而32位程序的寻址空间应该是4GB才对,为什么L...

我们通常使用的JVM都是32位的(64位的JVM会损失10-20%的性能,通常不建议使用),而32位程序的寻址空间应该是4GB才对,为什么Linux上的JVM内存只能使用2GB呢?

经过和JDK研发组的人员沟通,终于弄清楚了一些相关的原因。这个问题存在于早期的一些Linux版本中,特别是内核2.5以前的版本,2.6以后的版本就基本上没有这个问题了。原来这些Linux版本对进程有个对内存2GB的限制,是一个地址连续的内存块大小的上限,而JVM的堆空间(heap size)需要连续的地址空间,因此,2GB就是java进程的理论使用的内存上限。

如果java应用需要使用较大的内存,建议使用较新版本的linux,或者修改Linux的应用/内核内存比配置为3GB:1GB。还有就是选择如Solaris等的UNIX操作系统。象Solaris这样的操作系统,在JVM内存管理上没有2GB的限制,因此可以把heap size设置到3.5-3.6GB左右。

【解析Linux系统中JVM内存2GB上限的详解】相关文章:

Java动态代理的应用详解

解析WeakHashMap与HashMap的区别详解

解析Runtime中shutdown hook的使用详解

解析使用jdbc,hibernate处理clob/blob字段的详解

解析java中super的用法分析

解析如何用两个栈来实现队列的方法

浅谈java中静态方法的重写问题详解

基于Java字符编码的使用详解

深入分析:用1K内存实现高效I/O的RandomAccessFile类的详解

深入java内存查看与分析详解

精品推荐
分类导航