监视和检测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.修复泄漏,然后再次运行测试
现在剩下的是了解并修复泄漏源,但是对于每个对象来说,这都是个别的。 这些分步指导将帮助您检测泄漏的内存对象。
翻译自: https://www.javacodegeeks.com/2013/05/monitoring-and-detecting-memory-leaks-in-your-java-application.html
监视和检测Java应用程序中的内存泄漏相关推荐
- Java应用程序中的内存泄漏和内存管理
Java平台最突出的功能之一是其自动内存管理. 许多人错误地将此功能转换为Java中没有内存泄漏 . 但是,事实并非如此,我给人的印象是,现代Java框架和基于Java的平台,尤其是Android平台 ...
- java应用程序占用高内存_对Java应用程序中的内存问题进行故障排除
java应用程序占用高内存 重要要点 解决内存问题可能很棘手,但是正确的方法和正确的工具集可以大大简化此过程. Java HotSpot JVM可以报告几种OutOfMemoryError消息,因此务 ...
- 翻译 | 理解Java中的内存泄漏
猪年第一篇译文,大家多多支持! 原文自工程师baeldung博客,传送门 1. 介绍 Java 的其中一个核心特点是经由内置的垃圾回收机制(GC)下的自动化内存管理.GC 默默地处理着内存分配和释放工 ...
- 谈谈android中的内存泄漏
写在前面 内存泄漏实际上很多时候,对于开发者来说不容易引起重视.因为相对于crash来说,android中一两个地方发生内存泄漏的时候,对于整体没有特别严重的影响.但是我想说的是,当内存泄漏多的时候, ...
- java内存漏洞_处理Java程序中的内存漏洞
Java 程序中也有内存漏洞?当然有.与流行的观念相反,在 Java 编程中,内存治理仍然是需要考虑的问题.在本文中,您将了解到什么会导致内存漏洞以及何时应该关注这些漏洞.您还有机会实践一下在您自己的 ...
- Java应用程序中的SQL注入
在本文中,我们将讨论什么是SQL注入攻击. 以及它如何影响任何Web应用程序使用后端数据库. 在这里,我专注于Java Web应用程序. 开放Web应用程序安全项目(OWAP)列出了SQL注入是Web ...
- 在独立Java应用程序中使用Tomcat JDBC连接池
这是从我们的客人文章W4G伙伴克拉伦斯豪的作者临春3从A按. 您可能会在文章结尾找到本书的折扣券代码,仅适用于Java Code Geeks的读者! 请享用! 在需要数据访问权限的独立Java应用程序 ...
- Java web程序中备份oracle数据库
Java web程序中备份oracle数据库 1.生成备份文件: public ActionForward createDmp(ActionMapping mapping, ActionForm fo ...
- 在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南
如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣.尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsear ...
最新文章
- Python --金字塔
- UDP 组播---你需要了解这些
- css中的em 简单教程 -- 转
- python3-pwntools教程_记一次five熬夜重装pwntools
- 开源开发工具_3个开源行为驱动的开发工具
- 漫画《灌篮高手》将拍电影?井上雄彦发文确认
- 拓端tecdat|R语言指数平滑法holt-winters分析谷歌Google Analytics博客用户访问时间序列数据
- VTK学习笔记(二十八)ExtractEnclosedPoints python示例
- 苹果电脑语音听写的问题(电话中间加-,或者想要大写应该怎么设置呢)
- 计算机数字键盘如何用,电脑小数字键盘不能使用的原因和解决方法
- python计算增长率_计算Pandas集团年增长率
- java小游戏_Java开发小游戏,30分钟教会你
- 【工具类】TimeLine功能的使用(一)
- Linux Kernel Security全景图系列之开篇
- 你的信用卡安全不?数据科学家怎么破解信用卡欺诈?
- 【小程序】如何实现一个可折叠的列表
- 对Java.io中一些类的归纳,层次结构图
- 【STM32F4系列】【HAL库】【自制库】RDA5807M收音机芯片驱动
- 2db多少功率_功率和dB的关系很详细
- 手写的几个鼠标移上按钮的特效
热门文章
- 583. 两个字符串的删除操作用时6ms的另类解法
- 如何下载、配置IDEA的Maven
- 使用阿里巴巴json映射_使用JSON模式验证来映射稀疏JSON
- maven配置junit5_JUnit 5和Selenium –改善项目配置
- 魔术方法 类 序列化_Java序列化魔术方法及其示例使用
- 公有云 私有云 混合云_混合云的承诺,收益和产品
- junit junit_JSON的JUnit Hamcrest Matcher
- stackoverflow_Stackoverflow:您尚未发现的7个最佳Java答案
- 来的多可选_您的框架有多可扩展性?
- 面向对象代码_面向对象的代码生成方法