监视和检测Java应用程序中的内存泄漏

因此,您的应用程序内存不足,您日夜不停地分析应用程序,以期捕获对象中的内存漏洞。 后续步骤将说明如何监视和检测您的内存泄漏,以确保您的应用程序安全。

1.怀疑内存泄漏

如果您怀疑有内存泄漏,可以使用一种方便的方法来确保它确实在使用jconsole。 您可以在本地或远程将jconsole连接到您的应用程序,并使其监视一段时间(小时,半天,隔夜,周..)。将jconsole连接到您的应用程序后,开始分析“内存”选项卡。 内存泄漏的怀疑看起来像这样:

2.如何在您的应用程序中查找泄漏源

为此,我建议使用jisualVM。 该工具是JDK的一部分。 在jvisualVM内部,您可以进行堆转储(在“监视器”选项卡中)。 请记住,无法远程创建堆转储。 您需要在同一台计算机上运行jvisualvm或执行jmap命令来生成Heap-Dump文件,然后将其导入到jvisualvm中。

* Jmap是一个oracle工具,可打印给定进程的所有对象内存映射树。 这是一个jmap文档。

因此,基本上,您是在远程服务器(例如生产环境)上运行jmap,然后在本地分析该文件。 我建议做几个堆转储。 无论您是否有内存泄漏,这都将为您提供更好的画面。

3.分析堆转储文件

我个人喜欢使用MAT(内存分析器)( http://www.eclipse.org/mat/ )。 MAT获取堆转储文件,并帮助您查找内存泄漏。 MAT准确显示哪些实例具有内存增长可疑性。 您可能会注意到Java库实例是“问题可疑者”,例如:“ java.lang.Class”,但这很正常。

泄漏检测示例

在这里,您可以看到疑似泄漏组件的确切实例。

4.分析可疑物体

下一步是按可疑实例的详细信息字段并调查其中的对象:

在上面的示例中,我们可以清楚地看到TreeMap类型的字段正在增长。

5.修复泄漏,然后再次运行测试

现在剩下的是了解并修复泄漏源,但是对于每个对象来说,这都是个别的。 这些分步指导将帮助您检测泄漏的内存对象。

参考: IdanFridman.com博客上的JCG合作伙伴 Idan Fridman 监视和检测Java应用程序中的内存泄漏 。

翻译自: https://www.javacodegeeks.com/2013/05/monitoring-and-detecting-memory-leaks-in-your-java-application.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点a链接写邮件小技巧

无意间发现这个技巧&#xff0c;分享一下&#xff01; 当点击mailto的邮件链接的时候&#xff0c;需要填写标题和内容&#xff0c;如果你想规定一个邮件标题格式&#xff0c;那这个可以帮助你。 代码&#xff1a; <a href"mailto:haozidaqianduan.com?subject投稿&a…

javascript 分时函数 分批次添加DOM节点 timeChunk

创建1000个webqq的qq好友列表, 一个好友用一个节点来表示 * timeChunk var timeChunk function(a, fn, sz, done) {var obj, t, len a.length;var start function() {for (var i 0; i < Math.min(sz || 1, a.length); i) {var obj a.shift();fn.call(this, obj);}}retu…

uvm 形式验证_这究竟属于下一代验证的方法、语言还是工具?||路科验证

来源&#xff1a;内容由 公众号 路科验证 &#xff08;ID&#xff1a;Rocker-IC&#xff09;编辑部 原创&#xff0c;谢谢&#xff01;首先声明&#xff0c;便携式激励标准(PortableStimulus Standard, PSS)不是一种方法论&#xff0c;而是一种语言。使用语言我们可以有序地传递…

redis 版的 hello world

为 redis 添加一个命令&#xff0c;效果如下图&#xff1a; 在 Server.h 中加入命令处理函数的声明&#xff1a; void meCommand(client *c); 在 Server.c 的命令表中加入&#xff1a; struct redisCommand redisCommandTable[] {{"me",meCommand,1,"rF",…

unity中单位是米还是厘米_401场地清理是什么,由施工单位做还是甲方做?造价中如何体现?...

场地清理是对公路用地范围及借土场范围内施工场地的清理、拆除和挖掘&#xff0c;以及必要的平整场地等有关作业。一、工作内容根据路基工程项目分表可以看出场地清理主要包括三方面内容&#xff1a;1、清理与拆除(1)清除表土路基范围内的树根、腐殖土、草皮或地表土不符合路基…

华为鸿蒙系统是否上线,华为官方:鸿蒙系统2.0上线,手机能否搭载鸿蒙操作系统?...

原标题&#xff1a;华为官方&#xff1a;鸿蒙系统2.0上线&#xff0c;手机能否搭载鸿蒙操作系统&#xff1f;华为官宣鸿蒙已经过去有一年多的时间了。近日有消息称&#xff0c;在今年九月份华为即将举办开发者大会&#xff0c;届时正式发布鸿蒙2.0操作系统&#xff0c;相比之前…

图解 继电器模组接线图_交流接触器,继电器的知识你了解多少?(值得收藏)...

↑↑↑↑↑领取福利的小伙伴&#xff0c;先点击上方关注我们哦(文章字体较小&#xff0c;请点击放大后查看)交流接触器(Alternating Current Contactor)广泛用作电力的开断和控制电路。型号与参数交流接触器的型号很多&#xff0c; CJ0、CJ10系列交流接触器较为常用&#xff0c…

折线图表android,Android 折线图表MPAndroidChart的实现

昨日夜观天象&#xff0c;今日忽见北斗星陨落&#xff0c;《Android 折线图表》应运而生。single.pngmany.png一.本篇采用MPAndroidChart&#xff0c;大体实现步骤可分为两步&#xff1a;1.配置基本属性(包括X,Y轴)2.设置折线数据并添加复制代码二. 第一步&#xff0c;配置基本…

我最喜欢的Java高级开发人员书籍

我上一篇博客文章 &#xff08;我对高级Java开发人员的十个最喜欢的在线资源&#xff09;的想法是由Xiaoran Wang发表的针对高级Java开发人员的十大网站的启发。 Wang还写了一篇名为《面向Java高级开发人员的十大书籍》的文章。 正如关于高级Java开发人员的最佳网站上的帖子一样…

pyplot绘制图片_matplotlib系列之pyplot

pyplot对象包含了一系列用于绘图的函数&#xff0c;使得它工作起来就像MATLIB一样。它的功能例如&#xff1a;创建一个figure对象绘制一片绘图区域在区域中绘制线条或者点也可以绘制labels使用pyplot对象快速的生成一幅图片import matplotlib.pyplot as pltplt.subplot(121)plt…

字符串-----KMP竟然是18禁

今天学了一下午字符串&#xff0c;讲到结束也没讲KMP。有人问老师为什么不讲&#xff0c;老师来一句&#xff1a;字符串noip不考&#xff0c;而且还是18禁&#xff0c;自然不讲。【手动滑稽】 所以我也不讲。【微笑】 1.表达式树 表示35*8 最后计算的符号是根节点&#xff0c;是…

里bl2和bl3为什么分开_英国的水池为什么有两个水龙头?为什么英国有独立的冷热水龙头?...

如果大家看过我之前的文章&#xff0c;可能会有点映像&#xff0c;前面有提到过英国的双水龙头&#xff0c;有兴趣的朋友们可以点后面的直达链接查看&#xff1a;为什么在英国留学会掉头发&#xff1f;怎么办&#xff1f;英国的自来水&#xff08;冷水&#xff09;可以直接喝吗…

三剑客 老大:awk命令用法

awk是一种编程语言&#xff0c;用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一 个或多个文件&#xff0c;或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能&#xff0c;是linux/unix下的一个强大编程工具。它在命令行中使用&…

Mockito –带有注释和静态方法的额外接口

在代码中&#xff0c;我最近遇到了一段非常糟糕的代码&#xff0c;这些代码基于对对象执行某些操作的类转换。 当然&#xff0c;代码需要重构&#xff0c;但是如果您首先没有对该功能进行单元测试&#xff0c;则有时您可能无法做到/或者不想这样做&#xff08;这应该是可以理解…

怎么把原来的墙拆掉_家装拆除不是简单的砸砸墙,它也是有技术的

装修拆除中有很多人认为&#xff0c;拆除施工没有什么技术含量&#xff0c;感觉就像小品演的那样&#xff0c;挥挥大锤砸砸墙就可以了。所以有的人图便宜就从马路上随便找的工人来砸墙&#xff0c;他们不管是不是承重墙&#xff0c;只要业主要求他们就敢咋&#xff0c;后果真有…

20180209-os模块

下面将学习关于os模块的相关操作 项目练习的目录结构如下&#xff1a;所有的操作都是基于os_exercise.py模块 1.获取当前的Python脚本的工作目录路径 os.getcwd() # 1.获取当前目录 dir os.getcwd() print(获取当前python脚本工作目录:,dir) # 输出 # 获取当前python脚本工作目…

关于IE6.7.8.FF兼容的问题

所有浏览器 通用 height: 100px; IE6 专用 _height: 100px;IE6 专用 *height: 100px; IE7 专用 * height: 100px; IE7、FF 共用 height: 100px !important; 一、CSS 兼容 以下两种方法几乎能解决现今所有兼容. 1, !important (不是很推荐&#xff0c;用下面的一种感觉最安…

冯珊珊_模拟器企业衡泰信签约冯珊珊,推动高尔夫运动下沉

9月21日&#xff0c;著名高尔夫模拟器企业衡泰信宣布签约中国高尔夫球员冯珊珊&#xff0c;双方正式达成全面战略合作&#xff0c;旨在共同推动室内高尔夫运动的普及与推广&#xff0c;让更多人参与并喜爱上这项运动&#xff0c;推动全民健身目标&#xff0c;借助互联网、智慧场…

CSS3之background的调整和增加的属性

对于background做了一些修改&#xff0c;最明显的一个就是采用设置多背景&#xff0c;不但添加了4个新属性&#xff0c;并且还对目前的属性进行了调整增强。 1、多个背景图片 在css3里面&#xff0c;你可以再一个标签元素里应用多个背景图片。代码类似与css2.0版本的写法&…

html 天气特效,用CSS制作天气特效动画,源码分享

效果图今天给大家带来的是CSS3动画天气图标代码&#xff0c;简单实用好看&#xff01;CSS源码&#xff1a;html { box-sizing: border-box; }html *,html *:before,html *:after { box-sizing: inherit; }body {max-width: 42em;padding: 2em;margin: 0 auto;color: #161616;fo…