最近在学习JVM相关知识,今天在这里记录一下JVM的各内存模型的大小参数设置
我们的java程序都是通过JVM虚拟机执行的,那在程序运行过程中,我们的程序会被拆解为类,实例,方法等加载到JVM内存中进行执行,我们知道JVM内存模型大概分为方法区,堆,JVM栈,程序计数器等,其中各个模型所占空间的大小是多少呢?如果系统默认配置的大小不合乎我们的需求又怎么办呢?
堆所占空间设置:
-Xmx1m 表示最大内存空间1M
-Xms1m表示最小内存空间1M
JVM栈所占空间设置
-Xss160k 表示所占内存160K,通过测试可以看到提示其中一个栈的最小空间是160K,设置的值不能小于160,否则程序不能够执行
方法区所占空间(1.8被废弃,改用元空间,元空间的大小几乎不需我们关心)
-XX:PermSize1k 表示最小内存空间1K
-XX:MaxPermSize1k 表示最大为1K
内存溢出dump内存信息
-XX:+HeapDumpOnOutOfMemoryError