JVM虚拟机默认参数

前言
我们都知道jvm有一个堆内存的概念,我们可以通过-Xmx:最大堆内存,-Xms初始化堆内存来进行设置。
那么当我们不设置时默认是多少呢

堆内存
这里直接贴上官网jdk1.8的链接https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size

翻译如下:

默认堆大小
除非在命令行上指定了初始堆大小和最大堆大小,否则它们将根据计算机上的内存量进行计算。

最大物理内存大小不超过192兆字节(MB)时默认最大堆大小是物理内存的一半,否则占用物理内存的四分之一
在32位JVM上,如果有4 GB或更多的物理内存,则默认的最大堆大小最多可以为1 GB。在64位JVM上,如果有128
GB或更多的物理内存,则默认的最大堆大小最大为32 GB。
在JVM初始化期间分配了一个较小的值,称为初始堆大小。此数量至少为8 MB,否则为物理内存的1/64,最大为1 GB。
分配给年轻代的最大空间量是堆总大小的三分之一,即年轻代和老年代默认的比例是1:2
您可以使用-Xms(初始堆大小)和-Xmx(最大堆大小)来指定初始堆大小和最大堆大小。如果你知道你的应用程序有多少堆需要工作做好,你可以设置-Xms和-Xmx相同的值。否则,JVM将使用初始堆大小开始,然后将增大Java堆,直到找到堆使用率和性能之间的平衡为止。
以上就是在jdk1.8中的说明,但是在不同jdk版本和使用不同的垃圾收集器后或许会有调整
————————————————
版权声明:本文为CSDN博主「CRUD的W」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31086797/article/details/111396638

Guess you like

Origin blog.csdn.net/weixin_42324471/article/details/118612361