java 堆栈信息分析_Java堆栈信息分析
以下数据使用Jconsole转储文件中得来,不同的工具,不同的虚拟机得到的具体信息可能有差别
栈转储信息
转储方式
通过Jconsole工具(或者其他分析工具)
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x142b7400 nid=0x280 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x14276800 nid=0x9e0 in Object.wait() [0x1458f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x094678d8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x094678d8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x14270c00 nid=0xcc8 in Object.wait() [0x03daf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x09467a78> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x09467a78> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
"main" #1 prio=5 os_prio=0 tid=0x01b0c000 nid=0x9a8 waiting on condition [0x01b5f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at Test.main(Redefined)
Locked ownable synchronizers:
- None
Java虚拟机在运行时,除了用户线程外,还有许多的守护线程、虚拟机自身线程。
对于每个线程,都有如下信息:
线程名,如“main”
线程属性(如果是Daemon线程,会有Daemon标识,否则,什么都没有)
线程优先级,prio
java线程对应的本地线程的优先级os_pri
java线程标识tid
java线程对应的本地线程标识nid
线程状态(运行中、等待等)
线程的栈信息
线程锁信息
堆转储信息
直接使用sum jdk自带的工具jconsole,jvisual参看堆转储文件能看到的有用信息比较少,最多能看到那种类型的数据占用内存最多。
一般是使用它们生成转储文件,然后导入到其他工具中进行进一步分析,如eclipse memory map Analyzer (mat)进行分析。
安装mat后,使用mat打开生成的堆转储文件,查看相关信息。
(1)个人觉得如果要分析内存问题,还是需要非常了解你所分析的程序,不然,这些数据并没有什么太多用处。
(2)目前对mat还不是非常熟悉,感觉功能很强大,功能非常多,还没有摸索清楚大部分的功能用法,所以,下面就简单说一说大概弄懂了的东西
个人觉得最有用的几个分析功能有:
1.大体查看那些对象占用的内存最多 这个可以通过overview直接可以看到
2.查看某个对象一个简单的状态,如集合的最近刷新的值
3.查看对象到GC root的路径(即如何被引用的,为什么没有被回收)4.性能优化方法内存中是否有大量的重复字符串
集合的填充比例(看是否集合占用的许多未使用的空间)
5.线程栈信息快照,如当前都有那些变量,占用了多少空间
这个先说到这,等GC调优更加熟练了之后在写吧!
java 堆栈信息分析_Java堆栈信息分析相关推荐
- java log4j 热部署_JAVA类加载器分析--热部署的缺陷(有代码示例,及分析)
首先纠正一个误区: 热部署不是我们在Eclipse里面修改了代码不用重启就可以持续调试. 详情可以参考上一篇博文: 热部署和"Hot Code Replace"的区别 htt ...
- java面向对象银行案例_Java程序设计-面向对象分析案例:银行储蓄系统.ppt
面向对象分析 1 基本过程 2 需求陈述 3 建立对象模型 4 建立动态模型 5 建立功能模型 6 定义服务 1 面向对象分析的基本过程 在面向对象建模的过程中,系统分析员必须认真向领域专家学习. 在 ...
- java serializable 源码_Java源码分析之-Serializable接口
一.基本概念 Serializable接口: 1. 实现了Serializable接口的类,可以进行序列化和反序列化:没有实现这个接口的类的任何(state)状态/域或者属性值不能被序列化 2. Al ...
- java栈的应用_Java堆栈应用程序
我有一个Java问题,涉及阅读一个文本文件,并检查它是否正确地平衡了花括号,方括号和括号 - '{','}','[',']','('和') ". 读取文件没有问题,但现在我应该使用名为Del ...
- java中的递归算法_java递归算法实例分析
递归算法设计的基本思想是: 对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解. 在做递归算法的时候,一 ...
- java实现基金浮动_Java: 实现自回归分析/线性回归分析/基金各项指标计算等
版权声明:本文为博主原创文章,未经博主允许不得转载. 需Jama矩阵运算库. java版源码: 包含自回归分析/线性回归分析/基金各项指标计算 import Jama.Matrix; public c ...
- java 垃圾回收题目_Java垃圾收集题目分析
[考题题干]关于垃圾收集的哪些叙述是对的? A.垃圾收集将检查并释放不再使用的内存. B.垃圾收集允许程序开发者明确指定并立即释放该内存. C.程序开发者必须自己创建一个线程进行内存释放的工作. D. ...
- java 枚举类型初始化_java 枚举类型分析
最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enumColorSelect { RED_BAGE= 0, GREEN_BAGE, BL ...
- java集合类程序代码_Java集合类源代码分析二:ArrayList(1)
从java集合结构能够看出来ArrayList是属于Collection中的List范畴的.从源代码中是这样表示的, public classArrayList extends AbstractLis ...
- java学生管理系统代码_java学生信息管理系统(附源码)
一: 介绍 1:实现登录界面 2:实现主界面 有两种操作 一种是按钮操作 另外一种是SQL语句. 3:连接SQL server 2008 数据库 用到的软件及环境SQLserver2008,ec ...
最新文章
- 组策略 从入门到精通(二) 如何区别跨越WAN网的计算机对组策略的套用
- php+羊,PHP之羊生小羊的问题
- suricata的简介以及安装过程
- 线上学python哪家好-广州学Python学校哪家好
- 最短路径之迪杰斯特拉(Dijkstra 算法)弗洛伊德算法(C语言完整代码实现)
- 安装 Nexus——war版本
- 156 - Ananagrams
- 深入理解ajax系列第九篇
- 全球铁矿石行业供给分析与投资可行性分析报告2022年版
- ftp服务器技术原理,FTP工作原理
- spss回归分析笔记记录
- 圆柱体积怎么算立方公式_圆柱体积计算公式 计算方法及例题
- Linux-设置静态IP地址
- windows 远程连接mongo_远程连接天下数据ADSL动态拨号VPS教程(windows)
- 长江后浪推前浪, “趣出行”死在“火牛”的沙滩上
- 博士生为什么纷纷逃离科研?
- 我司Spark迁移Hive数据到MongoDB生产案例代码
- 考研政治——马克思辩证法中的两大特征和五大范畴
- 贝多芬没能写完的《第十交响曲》,即将被人工智能完成
- 原画师一般用什么软件画画?原画师需要用到什么工具?