首页 > 编程语言 >IBM java的分析工具(ga和ha)学习和整理

IBM java的分析工具(ga和ha)学习和整理

时间:2024-01-28 21:06:32浏览次数:32  
标签:java IBM gclog ga 工具 ha mat

IBM java的分析工具(ga和ha)学习和整理


背景

前几天学习了整理了 jca 工具
今天继续学习一下 ga工具
ga 工具主要是分析gclog相关.
可以很直观的进行gclog的分析和展示. 

除了mat之外还有一个比较轻量级的内存dump分析工具
ha. 想着一起学习和分析一下.

ga工具的相关学习

下载: 
https://www.ibm.com/support/pages/ibm-pattern-modeling-and-analysis-tool-java-garbage-collector-pmat

同意一下就可以下载对应的jar包了.

启动配置要求

需要增加配置信息:
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC

需要进行gclog的打印. 
-Xloggc:/tmp/gclog
方便的话还可以打印一下native Memory
-XX:NativeMemoryTracking=detail

简单使用

使用 java -jar的方式将 ga 工具启动起来.
然后加载对应的gclog 就可以进行分析. 

需要注意使用方式与之前的jca比较类似, 这里不在重复.

IBM java的分析工具(ga和ha)学习和整理_java


ha工具的相关学习

下载地址:
https://www.ibm.com/support/pages/ibm-heapanalyzer

注意这个文档强烈建议 使用mat. 
需要注意的是 这个工具比较小巧, 速度会快一些. 
Note: IBM HeapAnalyzer has no new development and therefore, 
in general, we recommend using the Eclipse Memory Analyzer Tool (MAT) instead which is open source, 
has active development, and has a similar feature set (leak suspects, etc.).

mat 分析一个 27G的dump文件要耗时 25min 以上, ha 工具的分析时间大约为: 

如果是内存比较小, 并且机器磁盘比较垃圾. mat分析可能要超过一个多小时. 所以节约的时间可能还比较可观.

简单使用

java -jar 就可以启动 ha的工具.
然后打开dump文件就可以分析. 

工具与mat有一些相近. 使用方式主要如下:

缺点

界面比较卡顿, 虽然可能比mat打开的速度快一些,
但是对数表键盘的支持比较差, 拖动时容易出现问题. 

共同的缺点
其实不管是mat和ha 都需要大量的磁盘写入.

mat 大概要产生跟prof文件相同大小的索引文件
ha  要产生一般大小的hax后缀的文件.

IBM java的分析工具(ga和ha)学习和整理_jar_02



标签:java,IBM,gclog,ga,工具,ha,mat
From: https://blog.51cto.com/u_11529070/9454176

相关文章

  • IBM jca 工具的学习与整理
    IBMjca工具的学习与整理背景发现自己最早看到IBM这个工具的时间是2022年9月份.但是一直没有进行过仔细的学习与论证.本周出现了一个问题.虽然通过gclog明显看出来是一个oom然后内存对象里面排第一的是hashnode相关内容猜测出可能是excel导入/导出相关的内容但是自己......
  • 用Java语言实现一个观察者模式
    观察者模式(也被称为发布/订阅模式),提供了避免组件之间紧密耦合的另一种方法,它将观察者和被观察的对象分开。在该模式中,一个对象通过添加一个方法(该方法允许另一个对象,即观察者注册自己)使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。这些观察者收到消......
  • 深入了解Java中的ArrayList
    Java中的ArrayList是一个常用的动态数组类,它提供了便捷的操作方法和灵活的大小调整能力。在本篇博客中,我们将深入了解ArrayList的特性、常见用法和一些注意事项。ArrayList概述:ArrayList是Java集合框架中的一个类,它实现了List接口,并继承了AbstractList类。它基于数组实现,可以动......
  • [职场] 面试题:Java语言技术的应用有哪些?
    小伙伴们面试时,特别是和代码相关的岗位,面试时可能会遇见关于Java语言技术的应用这个问题,那么我们应该如何作答呢?一起来看看答案吧!答案:1、Android,应用许多的Android,应用都是Java程序员开发者开发。虽然Androidi运用了不同的JVMl以及不同的封装方式,但是代码还是用Java语言所编写。......
  • JavaScript 实现点击爱心效果
    可放在网页任何位置,以下是代码:<script>(function(e,t){functionr(){s=s.filter((e)=>{e.alpha<=0?(t.body.removeChild(e.el),e=null):(e.y--,e.scale+=.004,e.alpha-=.013,e.el.style.cssText=`left:${e.x}px;top:${e.y}px;opac......
  • JavaScript 实现浏览器级别的弹窗提示
    可放在网页任何位置,以下是代码:1.每次打开都会弹出提示<script>//在页面加载时触发警告框window.onload=function(){alert('这是浏览器级别的弹窗提示!');};</script> 2.打开只弹出一次,刷新网页不会弹出,清理浏览器缓存会再次弹出<script>/......
  • Java常见容器类总结,实际应用场景归纳
    前言大家好,我是chowley,今天来总结一下Java中的常见容器类,和他们对应的使用场景。在Java中,容器类是一组用于存储和操作对象的类库,它们有着了不同的数据结构和实现原理,以满足开发过程中各种需求。本文将总结Java中常见的容器类,并通过实际应用场景进行归纳,帮助大家更好地理解和选择......
  • ABC338 F Negative Traveling Salesman 题解
    QuestionABC338FNegativeTravelingSalesman给出一个\(N\)个点\(M\)条边的有向图,边权可能为负数,但不可能有负环每经过一条边就要加上这条边的代价求,一条路径经过所有的点,并且要求总代价最小Solution观察到\(N\le20\)自然而然想到状压因为多次经过一条边的代价是......
  • [职场] ?java软件工程师的工作内容
    Java软件工程师是一种计算机工程师,专门从事使用Java语言进行软件开发和软件工程管理的工作。他们负责设计、开发、测试和维护Java应用程序,包括创建网站、移动应用、企业级应用和桌面应用等。Java软件工程师需要具备扎实的编程和算法基础,熟悉Java语言和相关技术框架,并且对软件开发流......
  • CodeForces 1924C Fractal Origami
    洛谷传送门CF传送门对这种题一点办法都没有。。。可以手动折叠发现\(n=3\)时\(M=2+2\sqrt{2},V=2+4\sqrt{2}\)。于是大胆猜结论,第二次折叠开始,每次产生的山谷和山峰的长度相等。为什么呢?考虑从第二次折叠开始,设当前纸的层数为\(k\)(事实上若当前是第\(i\)......