java的是堆内存、参数如何设置?

什么是堆内存?参数如何设置?

  堆内存是指由程序代码自由分配的内存,与栈内存作区分。
在 Java 中,堆内存主要用于分配对象的存储空间,只要拿到对象引用,所有线程都可以访问堆内存。
(1)-Xmx, 指定最大堆内存。 如 -Xmx4g. 这只是限制了 Heap 部分的最大值为 4g。这个内存不包括栈内存,也不包括堆外使用的内存。
(2)-Xms, 指定堆内存空间的初始大小。 如 -Xms4g。 而且指定的内存大小,并不是操作系统实际分配的初始值,而是 GC 先规划好,用到才分配。 专用服务器上需要保持 –Xms 和 –Xmx 一致,否则应用刚启动可能就有好几个 FullGC。当两者配置不一致时,堆内存扩容可能会导致性能抖动。

(3)-Xmn, 等价于 -XX:NewSize,使用 G1 垃圾收集器 不应该 设置该选项,在其他的某些业务场景下可以设置。官方建议设置为 -Xmx 的 1/2 ~ 1/4.
(4)-XX:MaxPermSize=size, 这是 JDK1.7 之前使用的。Java8 默认允许的 Meta 空间无限大,此参数无效。
(5)-XX:MaxMetaspaceSize=size, Java8 默认不限制 Meta 空间, 一般不允许设置该选项。
(6)-XX:MaxDirectMemorySize=size,系统可以使用的最大堆外内存,这个参数跟 -
Dsun.nio.MaxDirectMemorySize 效果相同。
(7)-Xss, 设置每个线程栈的字节数。 例如 -Xss1m 指定线程栈为 1MB,与-
XX:ThreadStackSize=1m 等价

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java程序在运行时需要使用堆内存来存放对象实例。最低堆内存和最高堆内存是用来限制堆内存大小参数。 最低堆内存指的是JVM启动时给程序分配的最低的堆内存大小。当程序需要更多的堆内存时,JVM会逐渐增加堆内存大小,直到达到最高堆内存的限制。如果最低堆内存和最高堆内存设置一样,那么JVM在启动时就会分配指定大小堆内存,程序在运行过程中不会动态调整堆内存大小设置最低堆内存和最高堆内存一样有以下几个优点: 1. 避免频繁的堆内存扩容和收缩:设置最低堆内存和最高堆内存一样可以避免在程序运行过程中频繁地扩大和缩小堆内存,减少因为动态调整堆内存大小而引起的性能影响。 2. 方便内存管理:设置最低堆内存和最高堆内存一样可以简化内存管理的工作。由于堆内存大小固定,可以更好地估计程序在运行时所需的堆内存大小,有利于优化内存的使用。 3. 确保稳定性:设置最低堆内存和最高堆内存一样可以确保程序使用固定大小堆内存,避免因为堆内存大小的变化而导致程序的运行情况不稳定。 总之,将最低堆内存和最高堆内存设置一样可以简化内存管理,提高程序的稳定性和性能。但需要注意的是,设置堆内存大小应该根据实际需求进行调整,以充分利用硬件资源并避免内存溢出或过多的内存使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值