JVM内存占用是否有上限?

12G内存,生成100w的数据测试一个东西,发现内存占用上升到10G后就不上升了,而且console里显示的数据生成速度明显变慢了,CPU占用率还是100%。这是什么原因,为什么还有2G空闲内存占用率却不上升了,是因为触发了GC吗?不懂,请指教!


回答:

JVM 是有限制的初始时候默认是物理内存的最小1/64, 默认最大是1/4, 不过可以自己设置, 操作系统与JVM也不允许将内存占满

  • 最小-Xms64M
  • 最大-Xmx128M
    可以在这里面修改:
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。


回答:

查看Java相关进程

➜  ~ jps

23008 Launcher

26130 Jps

19449 Launcher

14539

19228 GeneratorApplication

12909

查询相关信息

➜  ~ jinfo 19228

VM Flags:

-XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CICompilerCount=4 -XX:InitialHeapSize=268435456 -XX:+ManagementServer -XX:MaxHeapSize=4294967296 -XX:MaxNewSize=1431306240 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=89128960 -XX:OldSize=179306496 -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC

即可查询到堆内存限制信息。

一般启动Java项目时,会设置Xmx Xms来指定堆内存大小。一般会小于机器最大内存。


本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

以上是 JVM内存占用是否有上限? 的全部内容, 来源链接: utcz.com/p/945060.html

回到顶部