您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

java使用NMT Native Memory Tracking分析内存占用

时间:2022-09-15 14:34:51  来源:今日头条  作者:shoothzj

开启NMT

NMT目前只能在启动的时候开启,不支持动态开关NMT功能。开启NMT功能,会带来5%到10%的额外开销

通过-XX:NativeMemoryTracking=[off | summary | detail]来开启NMT功能。

  • off 关闭NMT功能,默认关闭
  • summary 仅收集子系统聚合的内存使用情况
  • detail 收集各个调用点的内存使用情况。

使用jcmd功能获取NMT数据

可以使用jcmd收集数据,或者是与基线进行对比

jcmd <pid> VM.native_memory [summary | detail | baseline | summary.diff | detail.diff | shutdown] [scale= KB | MB | GB]

jcmd NMT选项

描述

summary

打印summary

detail

打印按分类聚合的内存使用、打印按调用聚合的内存使用、打印虚拟内存映射

baseline

建立内存使用基线

summary.diff

打印summary和基线的对比

detail.diff

打印detail和基线的对比

shutdown

停止NMT

实战演示


jcmd 27 VM.native_memory summary scale=MB

Native Memory Tracking:

(Omitting categories weighting less than 1MB)

Total: reserved=2830MB, committed=1288MB
-                 JAVA Heap (reserved=1024MB, committed=1024MB)
                            (mmap: reserved=1024MB, committed=1024MB)

-                     Class (reserved=1025MB, committed=6MB)
                            (classes #8980)
                            (  instance classes #8430, array classes #550)
                            (malloc=1MB #20044)
                            (mmap: reserved=1024MB, committed=5MB)
                            (  Metadata:   )
                            (    reserved=40MB, committed=38MB)
                            (    used=38MB)
                            (    waste=0MB =0.34%)
                            (  Class space:)
                            (    reserved=1024MB, committed=5MB)
                            (    used=5MB)
                            (    waste=0MB =2.88%)

-                    Thread (reserved=312MB, committed=16MB)
                            (thread #156)
                            (stack: reserved=312MB, committed=16MB)

-                      Code (reserved=243MB, committed=18MB)
                            (malloc=1MB #6733)
                            (mmap: reserved=242MB, committed=17MB)

-                        GC (reserved=83MB, committed=83MB)
                            (malloc=13MB #7985)
                            (mmap: reserved=70MB, committed=70MB)

-                  Internal (reserved=14MB, committed=14MB)
                            (malloc=14MB #10083)

-                     Other (reserved=61MB, committed=61MB)
                            (malloc=61MB #126)

-                    Symbol (reserved=9MB, committed=9MB)
                            (malloc=8MB #224838)
                            (arena=1MB #1)

-    Native Memory Tracking (reserved=5MB, committed=5MB)
                            (tracking overhead=4MB)

-        Shared class space (reserved=12MB, committed=12MB)
                            (mmap: reserved=12MB, committed=12MB)

-                 Metaspace (reserved=40MB, committed=38MB)
                            (mmap: reserved=40MB, committed=38MB)


Tags:java   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一.介绍本文主要介绍如何基于POST Policy的使用规则在客户端通过JavaScript代码完成签名,然后通过表单直传数据到OSS。二.客户端签名步骤1.在客户端通过JavaScript代码完成签...【详细内容】
2022-11-04  Tags: java  点击:(1)  评论:(0)  加入收藏
本文将介绍接下来的技巧和主题: 在包装器上使用基元字段(例如,布尔值 ->布尔值) 减少形成平面结构的类的数量(在一个或多个类中折叠类) 尽可能使用窄数据类型(例如,代替,代替等)short...【详细内容】
2022-11-02  Tags: java  点击:(1)  评论:(0)  加入收藏
原因:最近在用Sqlite存储数据,因涉及数据安全,所以需要数据库加密,Sqlite库默认不带加密功能 目前已知的对 SQLite 加密的工具主要有「[SQLite Encryption Extension (SEE)]、[S...【详细内容】
2022-11-01  Tags: java  点击:(17)  评论:(0)  加入收藏
Image Processing in Javascript如果您正在寻找一种在 Web 项目中处理或操作图片的方法,本文则可能值得一看。它们中的大多数都提供基本操作,例如调整亮度和对比度,灰度以及反...【详细内容】
2022-11-01  Tags: java  点击:(7)  评论:(0)  加入收藏
对于数据抓取技术,本文介绍了java相关抓取工具,并附上demo源码供感兴趣的朋友测试!1)JDK自带HTTP连接,获取页面或Json 2) JDK自带URL连接,获取页面或Json 3)HttpClient Get工具,获取...【详细内容】
2022-10-31  Tags: java  点击:(7)  评论:(0)  加入收藏
JavaScript(简称js)广泛应用在web开发领域,几乎是web开发的唯一编程语言,近些年,借助node.js的快速发展,js在服务器领域也有了非常广泛运用与拓展。然而,虽然js在前后端都有了一定...【详细内容】
2022-10-31  Tags: java  点击:(11)  评论:(0)  加入收藏
每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。 在这篇博客中,我们将讨论 Node.js 和 JavaScript 开发之间的差异。JavaSc...【详细内容】
2022-10-28  Tags: java  点击:(10)  评论:(0)  加入收藏
计算距离下次生日还有多少天注意这里借助 moment 实现 getBirthdayFun(){ // 首先要获取到今年的生日 let birthdayTime = moment().format(&#39;YYYY-&#39;...【详细内容】
2022-10-28  Tags: java  点击:(9)  评论:(0)  加入收藏
作 者 | 肖荣强(路迁)写在前面为了提升应用稳定性,我们对前端项目开展了脚本异常治理的工作,对生产上报的js error进行了整体排查,试图通过降低脚本异常的发生频次来提升相关...【详细内容】
2022-10-27  Tags: java  点击:(5)  评论:(0)  加入收藏
前言说到java内部类,想必大家首先会想到比较常用的“匿名内部类”,但实际上,这只是内部类的其中一种使用方式而已。内部类的使用方式实际上总共包括:成员内部类, 方法局部类,匿名...【详细内容】
2022-10-27  Tags: java  点击:(9)  评论:(0)  加入收藏
▌简易百科推荐
本文将介绍接下来的技巧和主题: 在包装器上使用基元字段(例如,布尔值 ->布尔值) 减少形成平面结构的类的数量(在一个或多个类中折叠类) 尽可能使用窄数据类型(例如,代替,代替等)short...【详细内容】
2022-11-02  一个即将退役的码农  今日头条  Tags:Java   点击:(1)  评论:(0)  加入收藏
原因:最近在用Sqlite存储数据,因涉及数据安全,所以需要数据库加密,Sqlite库默认不带加密功能 目前已知的对 SQLite 加密的工具主要有「[SQLite Encryption Extension (SEE)]、[S...【详细内容】
2022-11-01  水中影子621  今日头条  Tags:Java   点击:(17)  评论:(0)  加入收藏
对于数据抓取技术,本文介绍了java相关抓取工具,并附上demo源码供感兴趣的朋友测试!1)JDK自带HTTP连接,获取页面或Json 2) JDK自带URL连接,获取页面或Json 3)HttpClient Get工具,获取...【详细内容】
2022-10-31  MYJ2C混淆  今日头条  Tags:   点击:(7)  评论:(0)  加入收藏
前言说到java内部类,想必大家首先会想到比较常用的“匿名内部类”,但实际上,这只是内部类的其中一种使用方式而已。内部类的使用方式实际上总共包括:成员内部类, 方法局部类,匿名...【详细内容】
2022-10-27  马士兵Java架构  今日头条  Tags:java   点击:(9)  评论:(0)  加入收藏
在项目开发中,后端服务对外提供API接口一般都会关注响应时长。但是某些情况下,由于业务规划逻辑的原因,我们的接口可能会是一个聚合信息处理类的处理逻辑,比如我们从多个不同的...【详细内容】
2022-10-26  架构悟道  今日头条  Tags:JAVA   点击:(16)  评论:(0)  加入收藏
与 PHP 或 JavaScript 不同,Java 是一种强类型编程语言。这实质上意味着每个变量都必须使用预定义的数据类型声明,之后不能更改。Java中有两种数据类型: 原始数据类型 - int、...【详细内容】
2022-10-26   qaseven    Tags:Java   点击:(6)  评论:(0)  加入收藏
1、原理:基于javaAgent和Java字节码注入技术的java探针工具技术原理 2、原理分析动态代理功能实现说明,我们利用javaAgent和ASM字节码技术开发java探针工具,实现原理如下:jdk1.5...【详细内容】
2022-10-24  马士兵Java架构  今日头条  Tags:Java探针   点击:(13)  评论:(0)  加入收藏
简介前面在密码学入门一文中讲解了各种常见的密码学概念、算法与运用场景,但没有介绍过代码,因此,为作补充,这一篇将会介绍使用Java语言如何实现使用这些算法,并介绍一下使用过程...【详细内容】
2022-10-22  扣钉日记  今日头条  Tags:Java   点击:(4)  评论:(0)  加入收藏
简单描述java虚拟机内存分配与GC触发场景堆内存中,新生代和老年代分区图解 堆空间的参数设置-XX: +PrintFlagsInitial :查看所有的参数的默认初始值-XX: +PrintFlagsFinal :...【详细内容】
2022-10-21  chost-jie    Tags:java虚拟机   点击:(6)  评论:(0)  加入收藏
概述最近项目上反馈某个重要的定时任务突然不执行了,很头疼,开发环境和测试环境都没有出现过这个问题。定时任务采用的是 ScheduledThreadPoolExecutor,后来一看代码发现踩了一...【详细内容】
2022-10-21  Java架构学习指南  今日头条  Tags:   点击:(8)  评论:(0)  加入收藏
站内最新
站内热门
站内头条