例如,如果我从没有定义的IDE运行/调试简单的Spring Boot应用程序,那么将设置初始堆大小,最大堆大小和堆栈大小(-Xms,-Xmx,-Xss)的大小?
默认情况下,Spring Boot应用程序将使用JVM默认内存设置。
默认堆大小
如果您的物理内存大小最大为192兆字节(MB),则默认的最大堆大小为物理内存的一半。
如果您的物理内存大小超过192兆字节,则默认的最大堆大小为物理内存的四分之一。
例如,如果您的计算机具有128 MB的物理内存,则最大堆大小为64 MB,并且大于或等于1 GB的物理内存将导致最大堆大小为256 MB。
除非您的程序创建了足够多的对象来要求它,否则JVM实际上并没有使用最大堆大小。在JVM初始化期间分配了一个较小的值,称为初始堆大小。该数量至少为8 MB,否则为物理内存的1/64,最大为1 GB。
分配给年轻代的最大空间量是堆总大小的三分之一。
您可以使用以下命令检查特定于您计算机的默认值
Linux:
java -XX:+ PrintFlagsFinal -version | grep HeapSize
视窗:
java -XX:+ PrintFlagsFinal -version | findstr堆大小
参考:https : //docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size
默认线程堆栈大小
默认线程堆栈大小随JVM,OS和环境变量而变化。
要了解平台上的默认线程堆栈大小是多少,请使用
在Linux中:
java -XX:+ PrintFlagsFinal -version | grep ThreadStackSize
在Windows中:
java -XX:+ PrintFlagsFinal -version | findstr ThreadStackSize
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句