Xms和Xmx和XX之间的差异:MaxPermSize

San*_*utt 28 tomcat garbage-collection

有什么区别

-Xms4096m
-Xmx2048M 
-XX:MaxPermSize=712M
Run Code Online (Sandbox Code Playgroud)

我越来越糊涂这两个-Xmx2048M-XX:MaxPermSize=712M

如果我使用-Xmx2048 M或-Xmx2048 将会发生m

JRL*_*JRL 47

Java对象驻留在称为的区域中,而类对象和方法对象等元数据驻留在永久生成或Perm Gen区域中.永久世代不是堆的一部分.

堆在JVM启动时创建,并且在应用程序运行时可能会增大或减小.当堆变满时,会收集垃圾.在垃圾收集期间,将清除不再使用的对象,从而为新对象腾出空间.

-Xms size指定初始堆大小.

-Xmx size指定最大堆大小.

-XX:MaxPermSize = size设置最大永久生成空间大小.此选项在JDK 8中已弃用,并由-XX:MaxMetaspaceSize选项取代.

大小以字节表示.附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节.

参考文献:

java内存池是如何划分的?

什么是烫发空间?

Java(JVM)内存模型 - Java中的内存管理

Java 7 SE命令行选项

Java 7 HotSpot VM选项

  • **如果您遇到性能问题,则需要对其进行诊断并找出原因.**8192m是过量的烫发空间.通常,当你得到`java.lang.OutOfMemoryError:PermGen space`错误时,你只需要增加perm gen.如果垃圾收集经常触发,可能需要使用`-xmx`增加堆内存,但请注意,操作系统磁盘缓存可用的内存较少.请查看https://rimuhosting.com/knowledgebase/linux/java/-Xmx-settings和[调整Tomcat性能以获得最佳速度](https://www.mulesoft.com/tcat/tomcat-performance). (3认同)