jdk内存配置

JDK 内存配置主要通过 JVM 启动参数调整堆内存、非堆内存等核心区域,常用参数及配置示例如下:

  1. 堆内存核心参数

◦ -Xms:堆内存初始大小,建议与 -Xmx 设为相同值避免运行时动态扩容,如 -Xms2g

◦ -Xmx:堆内存最大上限,如 -Xmx4g

◦ -Xmn:新生代内存大小,通常设为堆内存的 1/3~1/2,如 -Xmn1g

◦ -XX:SurvivorRatio:新生代中 Eden 区与 Survivor 区的比例,默认 8(即 Eden:S0:S1 = 8:1:1),如 -XX:SurvivorRatio=6

  1. 非堆内存参数

◦ -XX:PermSize(JDK 7及以前)/ -XX:MetaspaceSize(JDK 8及以后):方法区初始大小,如 -XX:MetaspaceSize=256m

◦ -XX:MaxPermSize(JDK 7及以前)/ -XX:MaxMetaspaceSize(JDK 8及以后):方法区最大大小,如 -XX:MaxMetaspaceSize=512m

  1. 直接内存参数

◦ -XX:MaxDirectMemorySize:设置直接内存上限,未指定时默认与 -Xmx 相同,如 -XX:MaxDirectMemorySize=1g

  1. 配置示例(Java 8+ 生产环境)

java -Xms2g -Xmx4g -Xmn1g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -jar your-app.jar

  1. 配置原则

◦ 堆内存总大小不超过物理内存的 1/2,避免系统频繁换页;

◦ 新生代占比过高会减少老年代空间,易引发老年代 GC;占比过低会增加 Minor GC 频率;

◦ 方法区大小需根据项目依赖包数量调整,避免出现 Metaspace OutOfMemoryError。

相关推荐
geovindu13 分钟前
java: Facade Pattern
java·开发语言·后端·外观模式·结构型模式
listening77714 分钟前
HarmonyOS 6.1 元服务深度优化:从“秒开”到“常驻”的极致体验
java·开发语言·spring
AC赳赳老秦33 分钟前
司法公开数据采集应用:OpenClaw 抓取裁判文书公开信息,批量整理同类参考案例
java·大数据·python·数据挖掘·数据分析·php·openclaw
笑小枫39 分钟前
用 Claude Code 推翻重写笑小枫网站
java·人工智能·spring boot·ai编程
霸道流氓气质1 小时前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
独隅1 小时前
IntelliJ IDEA 接入多种AI大模型插件终极指南(2026.1 企业合规版)
java·人工智能·intellij-idea
还是奇怪2 小时前
Simon Willison 用 DSPy 优化 Datasette Agent 提示词:提示工程正在变成可测试的软件工程
java·开发语言·软件工程
zfoo-framework2 小时前
1.ansible安装 2.虚拟机克隆
java
码上解惑2 小时前
从 Dify 工作流说起:常用节点怎么选、怎样组合?
java·人工智能·ai·agent·dify·智能体·spring ai
青山木3 小时前
Hot 100 --- 岛屿数量
java·数据结构·算法·leetcode·深度优先·广度优先