本文主要是介绍jprofiler内存分析和java程序高cpu占用线程的查找,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
jprofiler内存分析
- 查看项目所有对象的创建
- 1、创建记录 选择【start Recording】–>【Configure Recording Profiles】
- 2、选择自己想记录的信息 【OK】
- 3、我们在开始记录之前 先【Run GC】一次, gc后开始标记【Mark current】,以当前的对象实例数为基准 之后新增的会有其他颜色区分出来。
- 4、开始记录【Start Recordings】 选择刚配置的1032
- 1、创建记录 选择【start Recording】–>【Configure Recording Profiles】
-
5、在准备结束监控日志前 再进行一次【Run GC】
-
6、结束监控日志 【Stop Recordings】
-
7、现在红色的部分就是监控期间 垃圾回收器 未能回收的对象,我们选择未回收的对象分析【show selection heap walker】
-
8、勾选select recorded objects 从刚才的监控记录中分析
-
9、选择references
-
10、选择要分析的对象【Use selected Objects】
+11、 Reference 选择 【incoming references】 -
12、选择【show in Graph】
-
13、查看【show paths to gc root】
高cpu占用线程查找
- 1、任务管理器查看要查找的进程的pid
- 2、打开管理员方式打开cmd
- 3、导出进程快照 jstack -l 14204 > c:/14204.stack
- 4、cpu占用率用Process Explorer v15.3 看 Process Explorer v15.3下载地址
- 5、根据自己电脑选择对应版本双击运行,根据PID找到我们要看的进程 选择【Properties …】
* 6、选择【Threads】可以查看线程cpu占用情况 - 7、根据TID 转16进制 像上面的 TID:12680 转16进制后是 3188,用3188到前面导出的14204.stack文件中查找 可以看到该线程id对应的线程信息
- 参考博客:
- 使用JProfiler进行内存分析
- 揪出java程序占用cpu很高的线程
这篇关于jprofiler内存分析和java程序高cpu占用线程的查找的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!