jvm 堆内存分配

来源:互联网 发布:酷士多网络云手机 编辑:程序博客网 时间:2024/05/02 04:37

一般说来,你应该使用物理内存的 80% 作为堆大小。

当增加处理器时,记得增加内存,

因为分配可以并行进行,而垃圾收集不是并行的。


JVM中堆内存(heap),它是用于存储对象实例及数组值得区域,可以认为java中通过new创建的对象的内存都在此分配,Heap中的对象的内存都等待Gc进行回收,Heap在32位系统中最大为2G,在64位上则没有限制,其大小通过-Xms和-Xmx设置分配。-Xms为Jvm启动时Heap申请的最小的内存。默认为物理内存的1/64但小于1G,-Xmx为JVM可申请heap内存的最大值,默认为物理内存的1/4,默认为当堆内存的空余内存小于40%,JVM会增大heap到-Xmx制定的大小,可通过XX:MinHeapFreeRatio=自己指定这个比例,当heap的空余内存大于70%时,JVM会把HEAP的大小向-Xms指定的大小调整,可通过XX:MaxHeapFreeRatio=自己指定比例。但对于运行的系统而言,为避免频繁的调整HEAP的大小,通常会将-Xms和-Xmx设置为一样,因此,这两个用于调整比例的参数通常没用。当HEAP的大小少于所需的大小时,会报OutoFMemory错误

0 0
原创粉丝点击