news 2026/8/22 19:22:39

HoRain云--详解Native Memory Tracking之追踪区域分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--详解Native Memory Tracking之追踪区域分析

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

🔍 关键区域深度解读

📊 如何使用 NMT 进行诊断

⚠️ 注意事项


Native Memory Tracking (NMT) 是 HotSpot JVM 内置的重要工具,它让 JVM 自身及其内部组件的本地内存使用变得透明,是诊断堆外内存问题的利器。下面我们深入解析其追踪的各个内存区域。

下表汇总了 NMT 追踪的主要内存区域,帮助你快速建立整体认知。

内存区域

主要内容

监控意义与相关参数

Java Heap

Java 对象实例本身占用的内存。

JVM 内存使用的“主力”。通过-Xms,-Xmx控制。

Class

类元数据(方法区)。JDK8+ 对应 Metaspace。

加载类数量增多时此区域增长。通过-XX:MaxMetaspaceSize限制。

Thread

线程栈(JVM 内部线程和用户创建线程)。

线程数增加会线性增长。注意线程泄漏。可通过-Xss调整栈大小。

Code

JIT 编译器生成的本地代码缓存。

随着代码执行热点编译而增长。通过-XX:ReservedCodeCacheSize限制。

GC

垃圾收集器工作时使用的内部数据结构。

不同的 GC 算法和堆大小会影响其开销。

Compiler

JIT 编译器线程自身运行所需的内存。

通常较小。编译器线程数可由-XX:CICompilerCount调节。

Internal

关键区域:包含 Direct ByteBuffer、JVMTI、PerfData 等。

堆外内存泄漏的重点排查区。通过-XX:MaxDirectMemorySize限制直接内存。

Symbol

符号表,如字符串常量池(StringTable)。

不当使用String.intern()方法可能导致持续增长。可通过-XX:StringTableSize调整表大小。

Arena Chunk

内存池(Arena)分配策略使用的块。

通常波动较小,若持续增长可能预示特定类型的内存池泄漏。

NMT本身

NMT 功能运行时占用的内存。

这是开启 NMT 的固定开销,通常很小。

🔍 关键区域深度解读

  1. Internal 区域:堆外内存的“重灾区”

  2. Symbol 区域:字符串常量池的家

  3. Class 区域:Metaspace 的映射

📊 如何使用 NMT 进行诊断

  1. 启用 NMT

    在应用启动参数中添加:-XX:NativeMemoryTracking=detail。为获取更详尽信息,可同时加上-XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics

  2. 建立基线并对比

    这是诊断内存增长的关键步骤。

    # 应用启动后,先建立内存使用基线 jcmd <pid> VM.native_memory baseline # 执行疑似导致内存泄漏的操作或等待一段时间后,生成差异报告 jcmd <pid> VM.native_memory detail.diff

    差异报告会清晰地标出哪个区域的内存发生了增长,从而快速定位问题方向。

  3. 结合其他工具

⚠️ 注意事项

希望这份详细的区域分析能帮助你更好地使用 NMT。如果你有特定的内存异常场景,我可以提供更具体的分析思路。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 15:06:22

对比一圈后!风靡全网的AI论文工具 —— 千笔·专业论文写作工具

你是否曾为论文选题发愁&#xff1f;是否在深夜面对空白文档无从下笔&#xff1f;是否反复修改却仍不满意表达效果&#xff1f;论文写作的每一步都像一场与时间的赛跑&#xff0c;而你却总被卡在某个关键节点。别再让这些困难拖慢你的节奏&#xff0c;现在&#xff0c;是时候尝…

作者头像 李华
网站建设 2026/7/29 5:26:07

摆脱论文困扰! 降AI率平台 千笔·降AI率助手 VS 文途AI,MBA专属首选

在AI技术迅速发展的今天&#xff0c;越来越多的MBA学生开始借助AI工具辅助论文写作&#xff0c;以提升效率和内容质量。然而&#xff0c;随着学术审查标准的不断提高&#xff0c;AI生成内容的痕迹越来越容易被识别&#xff0c;论文中的“AI率”问题也逐渐成为困扰学生的重大难题…

作者头像 李华
网站建设 2026/8/22 6:29:32

Zen Browser v1.18.4b 丨开源跨平台浏览器

Zen Browser v1.18.4b 是基于 Gecko 内核打造的开源跨平台浏览器&#xff0c;该浏览器主打广告与跟踪器智能拦截&#xff0c;同时兼顾极致流畅的网页浏览体验&#xff0c;本次 v1.18.4b 新版本完成了多项功能问题修复与使用体验优化&#xff0c;为用户打造更高效、更稳定的网页…

作者头像 李华
网站建设 2026/8/21 0:29:41

引入AI辅助的3D游戏美术工作流

不同于其他类型的AI应用&#xff0c;3D内容的AI生成应用所面向的行业更加垂直&#xff0c;会有一定的专业使用门槛&#xff0c;并且生成的产物与直接投入生产环境的内容往往还存在一定的距离。笔者这里针对小型独立游戏/Demo的场景下&#xff0c;为提高3D游戏美术工作效率和降低…

作者头像 李华
网站建设 2026/8/22 5:52:09

Python入门:从安装到第一个程序

好的&#xff0c;我们来梳理一下Python的基础与环境配置要点&#xff1a; 1. Python 是什么&#xff1f; Python 是一种高级编程语言&#xff0c;以简洁易读的语法著称。它支持多种编程范式&#xff08;面向对象、函数式等&#xff09;&#xff0c;广泛应用于数据分析、人工智…

作者头像 李华