我有一个JVM,我从以下参数开始:
-XX:MaxPermSize = 256m -XX:+ CMSClassUnloadingEnabled -Xmx2048m
为了获得更高的性能,我应该添加Xms和XX:PermSize?
什么是Xms和XX的好价值:PermSize(最大或等于最大的百分比)?
如何检查linux中的性能(开始时间等)。
非常感谢
答案 0 :(得分:1)
Xms标志的日期是JVM进行增量垃圾收集之前的一段时间,因此保持堆尽可能小是有益的(尽可能缩短垃圾收集)。因此,您可以在启动时使用Xmx标志保留适当的最大内存量,但只能使用Xms提交较小的块。
现在我们有了世代的增量垃圾收集器,将Xms和Xmx设置为相同的值通常是最佳选择。这样就无需动态地为堆分配更多内存,这需要一个可能会对性能产生负面影响的完整垃圾回收。
如果您使用较低的Xms值启动应用程序并启用GC日志记录(-verbose:gc -Xloggc:FILENAME),日志文件将显示堆和生成大小在应用程序运行时如何更改并为您提供一个想法你的应用程序实际需要多少内存。