JVM Heap值设置

client模式运行

heap默认最大值计算方式:如果物理内存少于192M,那么heap最大值为物理内存的一半。如果物理内存大于等于1G,那么heap的最大值为物理内存的1/4,即256M.。比如:电脑的物理内存为128M,那么最大heap为128/2=64M。如果电脑的物理内存为1G,那么最大heap为1G/4=256M。需要注意的是,虽然我们指定了最大堆内存,但这并不意味着jvm的真实使用了这么大的内存,除非你的应用创建了足够多的对象达到了这么的内存空间。

heap默认最小值计算方式:最少不得少于8M,如果物理内存大于等于1G,那么默认值为物理内存的1/64,即1024/64=16M。最小堆内存在jvm启动的时候就会被初始化。

新生代默认最大值为heap总大小的1/3

server jvm 堆的默认最小和最大值计算方式

除了heap的大小可以设置的更大一些,heap的工作方式和client模式运行的jvm相似。对于32位虚拟机,如果物理内存大于等于4G,那么堆内存可以达到1G。对于64位虚拟机,heap不受限制。如果物理内存多于128G,那么heap最多可以达到32G。

如何设置heap的大小

-Xms:设置heap初始值

-Xmx:设置heap的最大值

如果清楚应用需要大少内存,那么可以把-Xms和-Xmx可以设置成一样。

https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size

猜你喜欢

转载自www.cnblogs.com/lzmrex/p/12102454.html