Java — 堆内存、新生代、老年代 一般设置为多大内存?

置顶

学习专栏:【Java后端面试题】

  • 1.Java面试题—基础知识、面向对象、【容器】、IO & 【设计模式】、泛型 & 异常 & 反射 & 注解、快速排序
  • 2.Java面试题—并发基础、【同步 & 互斥】、JUC & 并发容器、【线程池】、异步编程、【Lambda表达式】、方法引用、Stream流
  • 3.Java面试题—JVM基础、【内存管理】、【垃圾回收】 & 垃圾收集器、JVM 调优
  • 4.Java面试题—【Spring】、【Spring Boot】、Spring Cloud、Mybatis-Plus
  • 5.Java面试题—【MySQL】、【Redis】、【计算机网络】、Linux、【Nginx】

1.堆内存

通常情况下,建议将 最大堆内存大小 设置为可用 物理内存的一半三分之二,以避免过度占用 服务器内存,同时也可以提供足够的内存供应用程序使用。

  • 例如,如果 服务器 可用内存为 8GB,则可以将 最大堆内存 大小设置为 4GB6GB 之间。

Java虚拟机 中,可以通过 -Xms-Xmx 参数来指定 堆内存初始值最大值

  • 例如,-Xms512m -Xmx1024m 表示 初始堆内存大小512MB最大堆内存大小1024MB

2.新生代 & 老年代

项目启动时,虚拟机新生代和老年代的内存设置取决于多个因素,如 项目的需求硬件资源 以及 系统的负载 等。以下是一些常见的设置参考:

  • 新生代(Young Generation):通常设置为整个 堆内存1/31/4新生代 主要包括 Eden区两个Survivor区,用于存放 新创建的对象短期存活的对象
  • 老年代(Old Generation):通常设置为整个 堆内存2/33/4。老年代用于存放 长期存活的对象

------ 感谢观看,一键三连 ------

你可能感兴趣的:(NoteBook笔记本,java,开发语言)