JVM内存模型及常用内存设置

JVM的内存模型

JVM(Java Virtual Machine)内存分为几大区域,包括程序计数器、堆、栈、方法区,其实内存模型和C++很类似。其中:

  • 程序计数器:
    • 记录当前执行指令的地址,对于if、for、递归、函数调用等,修改该计算器的值即可,该计数器有程序修改
    • 堆内存是通过new创建的对象,在JAVA中,用new创建的对象都是在堆创建的(基础类型除外),在C++中,使用new创建的对象也是在堆存储的
    • 栈是形参、局部变量、递归的压栈都是存储在栈中的
  • 方法区
    • 方法区是存储方法和常量的,常量信息会存储在方法区,方法本身的一些信息也是存储在方法区

设置JVM内存的参数

-XX:PermSize=10M -XX:MaxPermSize=20M -Xmx100m -Xms20m -Xss20m

其中:

  • -XX:PermSize是设置方法区默认为10M
  • -XX:MaxPermSize是设置方法去最大内存为20M
  • -Xmx是设置最大堆内存为100M
  • -Xms是设置最小堆内存是20m
  • -Xss是设置栈的内存为20m

这里我们可以将对应的参数换成k、m、g,单位不区分大小写,这里的内存限制受限于物理内存,如果我们发现内存溢出错误,可能 根据提示查找错误的原因,我们可以增大内存或者查询错误代码来解决该问题

转载于:https://www.cnblogs.com/shenjie2017/articles/10490843.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值