1. Native 镜像的启动参数与运行时行为差异,JVM 参数子集、-XX 支持范围与内存默认值
Native 镜像的启动参数与运行时行为与传统 JVM 有哪些差异,如 JVM 参数子集、-XX 支持范围与内存默认值?
- Native 支持的 JVM 参数子集
- -XX 参数支持范围
- 内存默认值差异
Native Image 支持传统 JVM 参数的一个子集:常用参数如 -Xmx、-Xms、-Xss 等可用,但部分 JVM 参数(如 -XX:* 的多数选项)在 Native 中不受支持或被忽略。Native 的 -XX 支持范围有限,主要覆盖 GC 相关(如 -XX:+UseG1GC、-XX:+UseSerialGC)与少量诊断参数。内存默认值方面,Native 默认堆大小、栈大小可能与 JVM 不同,且需根据构建配置与运行环境调整。因此生产环境中应显式设置关键内存参数,避免依赖默认值。
差异源于 Native 没有 JIT 与完整的 JVM 运行时,参数子集是"被编译进镜像"的有限配置。理解支持范围可避免误用无效参数导致启动失败。