当前位置: 首页 > news >正文

网站开发工作方案wordpress文章列表主题

网站开发工作方案,wordpress文章列表主题,企业网站备案价格,怎么注销建设银行网站用户转载自 如何使用MAT进行JVM内存泄露分析 在《Java Agent的隔离实现以及卸载时一些坑》中#xff0c;卸载Agent之后#xff0c;使用 jmap-histo:live pid命令验证执行FGC#xff0c;相关Class是否会被回收#xff0c;结果遇到了一些问题#xff0c;最终通过MAT内存分析才…转载自  如何使用MAT进行JVM内存泄露分析 在《Java Agent的隔离实现以及卸载时一些坑》中卸载Agent之后使用 jmap-histo:live pid命令验证执行FGC相关Class是否会被回收结果遇到了一些问题最终通过MAT内存分析才定位到了问题本文介绍如何使用MAT进行内存泄露分析。 MAT安装 MAT是eclipse中的一个插件不过也提供了独立的版本在IDEA风靡的今天建议直接使用独立版本官网下载地址  http://www.eclipse.org/mat/downloads.php  根据操作系统版本下载最新的MAT MAT配置 找到MemoryAnalyzer.ini文件该文件里面有个Xmx参数该参数表示最大内存占用量默认为1024m根据堆转储文件大小修改该参数即可。 获取堆转储文件 1、如果想主动获取可以使用jamp命令对于部署到服务器上的程序可以采用这种方式获取堆转储文件后scp到本地然后本地分析。 jmap -dump:formatb,filedumpfile.hprof pid 2、如果想在发生内存溢出的时候自动dump需要添加下面参数 -XX:HeapDumpOnOutOfMemoryError MAT使用 打开MAT之后加载dump文件显示下面的界面。 一般用到比较多的2个功能 1、Histogram 2、Leak Suspects Histogram 这个功能主要是查看类和对象关系对象和对象之间的关系用来定位哪些对象在FGC之后还活着哪些对象占大部分内存。 1、点开Histogram可列出每一个类的实例数支持正则表达式查找也可以计算出该类所有对象的retained size。 Shallow Heap就是对象本身占用内存的大小不包含其引用的对象内存实际分析中作用不大。常规对象非数组的ShallowSize由其成员变量的数量和类型决定。数组的shallow size有数组元素的类型对象类型、基本类型和数组长度决定。对象成员都是些引用真正的内存都在堆上看起来是一堆原生的byte[], char[], int[]对象本身的内存都很小。 Retained Heap值的计算方式是将Retained Set当该对象被回收时那些将被GC回收的对象集合中的所有对象大小叠加。或者说因为X被释放导致其它所有被释放对象包括被递归释放的所占的heap大小。 Retained Heap例子: 一个ArrayList对象持有100个对象每一个占用16 bytes如果这个list对象被回收那么其中100个对象也可以被回收可以回收16*100 X的内存X代表ArrayList的shallow大小。 所以RetainedHeap可以更精确的反映一个对象实际占用的大小。 2、选择一个Class右键选择List objects with incoming references 在新页面会显示通过这个class创建的对象信息 3、选择一个对象右键选择Path to GC Roots **通常在排查内存泄漏的时候我们会选择exclude all phantom/weak/soft etc.references, 意思是查看排除虚引用/弱引用/软引用等的引用链因为被虚引用/弱引用/软引用的对象可以直接被GC给回收我们要看的就是某个对象否还存在Strong 引用链在导出HeapDump之前要手动出发GC来保证如果有则说明存在内存泄漏然后再去排查具体引用。 这时会拿到GC Roots到该对象的路径通过对象之间的引用可以清楚的看出这个对象没有被回收的原因然后再去定位问题。 假如说上面对象此时本来应该是被GC掉的简单的办法就是将其中的某处置为null或者remove掉使其到GC Root无路径可达处于不可触及状态垃圾回收器就可以回收了。 Leak Suspects Leak Suspects 界面提示可能存在内存的泄露。 然后接着是问题一的描述列出了一些比较大的实例。 点击Details可以看到细节信息 点开Details进入详情页面在详情页面Shortest Paths To the Accumulation Point表示GC root到内存消耗聚集点的最短路径如果某个内存消耗聚集点有路径到达GC root则该内存消耗聚集点不会被当做垃圾被回收。 内存快照对比 为了有效的找出内存泄露的对象一般会获取两个堆转储文件先dump一个隔段时间再dump一个并同时打开两个dump文件。 打开其中一个Histogram然后点击下面按钮。 选择另外一个需要对比的dump文件 通过对比结果可以方便的看出对象的变化情况并快速定位问题。 还不会使用的MAT的同学赶紧学起来机会都是留给有准备的人。
http://wiki.neutronadmin.com/news/40598/

相关文章:

  • 网站开发与经营做外贸没有网站需要什么条件
  • 短网址生成网站外贸网站外贸网站建设行吗
  • 庆阳市建设局网站vs2015网站开发基础样式
  • 南昌网站制作wordpress站群seo
  • 柳市网站优化2023年房地产最新消息
  • 关于网站策划的说法错误的是汕头制作企业网站
  • 重庆双八自助建设网站网站建设的软件叫啥
  • 网站子站怎么建设企业所得税优惠政策最新2023规定公告
  • 网站域名如何备案北京网站建设哪便宜
  • 泛微e8做网站门户微信推广方案范文
  • 网站加载效果怎么做的网页设计尺寸1920
  • 小网站源码移动端网站建设需要注意哪些问题
  • 网站上怎么做动画广告视频在线观看做同城相亲网站
  • 学生怎么制作网站中企动力公司网站价格
  • 鹤壁做网站价格你的网站尚未进行备案
  • 公司网站建设及推广wordpress会员登录界面美化
  • 厦门网站建设培训班深圳 建网站
  • 江苏网站建设开发网站建设需求分析怎么写
  • 网站开发与系统开发用python做音乐网站
  • 策划书模板范文抖音seo排名系统哪个好用
  • 做网站就业要会什么263企业邮箱怎么注册
  • 移动端 pc网站开发开发公司名字起名大全
  • 考试源码网站wordpress岳阳网站界面设计
  • 南通网站建设公司哪家好集团网站建设特色
  • 富阳网站建设报价河北省建设工程信息网招标公告
  • 加强网站制度建设电子商务网站规划与建设的论文
  • 济南网站建设询问臻动传媒百度小程序wordpress
  • 建app网站要多少钱海南网站建设粤icp备
  • 安阳专业网站建设软通动力外包值得去吗
  • 网站出现500wordpress 基于 网店