java-为什么xmx和top之间存在内存使用差异?教程
我将jvm的xmx设置为等于4 G,但是运行一段时间后,当我使用top来查看内存时,它显示进程使用了12 G内存.
那么,xmx到底是什么意思呢?如果要将jvm内存限制为4 G,该怎么办?
命令行:-server -Xms4g -Xmx4g
和另一个相关的问题:)
如果发生gc,JVM是否会不可避免地释放年轻一代不再使用的对象的空间?还是其中一些留给下一个gc?
谢谢
解决方法:
JVM的-Xmx选项指定Java的最大大小
垃圾收集堆.它不限制JVM使用的内存大小. ps或top报告的进程大小将
包括该信息,以及该进程使用的任何其他内存.下列
是不属于垃圾收集堆的事物的示例
并且仍然是该过程所需的内存的一部分:
实现JVM的代码
用于实现JVM的数据结构的C手册堆
堆叠系统中所有线程(应用JVM)
缓存的Java字节码(用于库和应用程序)
JIT机器码(用于库和应用程序)
所有已加载类的静态变量