JVM知识
Posted angelshelter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM知识相关的知识,希望对你有一定的参考价值。
堆(Heap)和非堆(Non-heap)内存
简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的。
堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指 定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
JVM内存限制(最大值)
首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然 可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统 下为2G-3G),而64bit以上的处理器就不会有限制了。
来自:http://blog.csdn.net/softwave/article/details/6238747
以上是关于JVM知识的主要内容,如果未能解决你的问题,请参考以下文章