非Java专家的APM:什么泄漏?

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用!

内存,内存,内存...

内存是Java的关键部分,尤其是内存管理。 作为开发人员,内存管理不是您要定期执行的操作,也不是您要手动执行的操作。 Java的一大优点是它能够为您处理内存模型。 当不使用对象时,Java会通过清理来帮助您。

但这也是问题开始的地方。 使用Java,也许您的应用程序不再使用对象,但是如果您不告诉虚拟机您不再使用它,则它不会清除它。 这是内存泄漏 。 我们都看过他们。 对象开始在您的堆中累积,您的应用程序停止运行。

内存泄漏通常是由于编程不当而导致的-通常是在开发人员未释放对对象的所有引用的情况下。 如您所知,Java中的类似对象被放到集合或映射中,因此如果您不从集合中删除特定的数据集,问题就会变得更加复杂。 收集的东西越多,您损失的空间就越大。

当Java为您管理内存模型,或者创建/销毁未使用的对象时,它将它们放入堆中。 该堆始终具有一定的大小,并具有最大可用空间。 如果内存管理不善,堆的空间将用完。 集合加起来,然后JVM崩溃。

诊断泄漏

传统上,有两种主要的内存泄漏诊断方法:堆转储和分析器。

自卸车5-150x150 第一个是堆转储,基本上可以让您查看哪个对象持有对集合的引用。 它可以使您对导致问题的对象有一个很好的了解,但它不会告诉您谁在访问集合,而谁没有访问集合。 它告诉您集合的位置,但不告诉您使用它的人的特征。 堆转储通常也非常大,以GB为单位,并且大堆转储很繁琐。 分析和打开堆转储,然后阅读并确定问题,需要大量资源。

第二种方法是堆转储和探查器的组合,可以使您更接近一点,但不多。 内存探查器会尝试帮助您分析堆转储。 他们拥有实时数据,现在您知道是谁在创建对象,但是您仍然没有真正导致泄漏的原因。

假设我有一个雇员对象。 员工对象被放入集合中,探查器将告诉您创建它的人。 探查器没有告诉您的是谁将其放入集合中以及从集合中将其删除。 探查器告诉您对象的诞生,而不是泄漏的原因。 无论如何,这可以帮助您缩小范围,但是您需要应用程序的扎实知识才能使探查器真正地帮助您确定原因,然后仍然需要大量时间和资源来查找泄漏。

我们从很多人那里听到了。 许多公司尝试使用这些工具,但是每隔几天他们的应用就会崩溃。 那他们怎么办? 他们重新启动JVM或CLR。 他们的应用再次崩溃,然后重新启动。 应用程序管理是一场噩梦,因为他们无法找到或修复其内存泄漏。

堆转储和事件探查器都可以在开发和预生产中提供帮助,但是一旦您的应用大量使用,事件探查器就无法使用。 探查器会引入大量开销,堆转储几乎会停止生产中应用程序的所有处理。 基本上,您需要使该JVM / CLR上的应用程序脱机才能完成所有工作。

随着当今应用程序的发展,这些繁琐的过程变得越来越难维护。 随着应用程序变得越来越复杂,堆越来越大,最终,这些方法并没有减少它。

AppDynamics和内存泄漏

迄今为止,我们的方法一直是提供全面的事务快照,尤其是明显的代码问题,可以使您深入了解问题的根源。 为了有效地隔离和解决内存泄漏,事务和代码路径分析至关重要。

这带给我们AppDynamics的一些有趣的发展。 我们为公司提供了一种直接识别内存泄漏根本原因的方法。 您可以自动检测泄漏,确定是谁在创建泄漏,以及导致该泄漏的代码路径或业务交易。 您可以在此处了解更多信息。

这有好处吗? 减少停机时间并降低MTTR。 我们很兴奋。 希望你也是。

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用!

翻译自: https://www.javacodegeeks.com/2016/10/apm-non-java-guru-leak.html

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

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

相关文章

总结libevent安装方法

1.先用:ls -al /usr/lib | grep libevent 查看是否已安装,如果已安装且版本低于1.3,则先通过:rpm -e libevent —nodeps 进行卸载。 2.下载libevent安装包:libevent-1.4.13-stable.tar.gz,然后解压。 3.切…

opencv中匹配点对的坐标提取

在opencv中&#xff0c;特征检测、描述、匹配都有集成的函数。vector<DMatch> bestMatches;用来存储得到的匹配点对。那么如何提取出其中的坐标呢&#xff1f; int index1, index2;for (int i 0; i < bestMatches.size(); i)//将匹配的特征点坐标赋给point{index1 b…

echarts 弹出放大_Echarts图标增加全屏/放大功能

需求描述&#xff1a;客户爸爸在看某个echarts图表时&#xff0c;图标的数据很多&#xff0c;字看着很小&#xff0c;客户爸爸希望能双击放大某个图表。如下面这个图表字太小&#xff0c;太密。image.png解决方式&#xff1a;网上有不少方式是用Echarts的tool工具先上自定义工具…

Hdoj 1847.Good Luck in CET-4 Everybody! 题解

Problem Description 大学英语四级考试就要来临了&#xff0c;你是不是在紧张的复习&#xff1f;也许紧张得连短学期的ACM都没工夫练习了&#xff0c;反正我知道的Kiki和Cici都是如此。当然&#xff0c;作为在考场浸润了十几载的当代大学生&#xff0c;Kiki和Cici更懂得考前的放…

mexw32与mexw64

关于mex文件 MATLAB的mex文件是一种特征的函数封装形式&#xff0c;这类函数一般由C/C语言编写的&#xff0c;经过MATLAB编译器处理而生成的二进制文件。它可以被MATLAB解释器自动装载并执行的动态链接程序&#xff0c;类似于windows下的dll文件。在使用的时候也可以像普通的.m…

对外汉语语料库有哪些_国内语料库建设一览表

英语学习者语料库(书面语及口语)中国学习者语料库 CLEC(100万)广外、上海交大大学英语学习者口语语料库 COLSEC (5万) 上海交大香港科技大学学习者语料库 HKUST Learner Corpus 香港科技大学中国英语专业语料库 CEME (148万) 南京大学中国英语学习者口语语料库 SECCL (100万) 南…

数据库设计(一对一、一对多、多对多)

关联映射&#xff1a;一对多/多对一 存在最普遍的映射关系&#xff0c;简单来讲就如球员与球队的关系&#xff1b; 一对多&#xff1a;从球队角度来说一个球队拥有多个球员 即为一对多 多对一&#xff1a;从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下…

oozie与hue整合 执行WC案例报错: 连接10020端口被拒绝

Call From hdp-05/192.168.230.15 to hdp-01:10020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused错误原因没有启动hadoop的history程序JobHistoryServer进程监听端口就是10…

matlab无法读取xls

我首先从C中导出了xls格式的excel表格&#xff0c;又用MATLAB读取时&#xff0c;遇到下面的问题&#xff1a; Error using xlsread (line 251) File E:\matlab_pagram\myGMS\right.xls not in Microsoft Excel Format. 我的读取函数是&#xff1a;labels_right xlsread(righ…

Valhalla项目的价值

我对Valhalla项目的进度一直很感兴趣&#xff0c;但是Brian Goetz最近的信息“ Valhalla项目&#xff1a;目标 ”提高了我的兴趣。 我经常喜欢Goetz的作品&#xff0c;因为他结合了我最想成为技术作者的两个特征&#xff1a;他比他所写的内容更了解他所写的主题&#xff0c;而且…

python里clear和copy_python之字典

通过名字引用值得数据结构.这种结构类型称为映射.字典是python中唯一内建的映射类型.字典中的值并没有特殊的顺序,但是都存储在一个特定的键里.键可以是数字,字符串甚至是元组.某些情况下,字典比列表更加适用:1.表征游戏棋盘的状态,每个键都是由坐标值组成的元组;2.存储文件修改…

实用类-会员信息

录入会员生日&#xff0c;形式必须是“月/日”&#xff0c;如“09/12”&#xff1b;录入的密码必须在6-10位之间&#xff1b;允许用户重复输入&#xff0c;直到输入正确为止。 1 package demo3;2 3 import java.util.Scanner;4 5 public class Test8 {6 public static void…

GDAL学习总结

GDAL介绍 GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支&#xff0c;功能与GDAL类似&#xff0c;只不过…

matlab能用矩阵操作就不要用for循环

1.MATLAB尽量少用for循环来操作矩阵&#xff0c;多用本身的矩阵操作函数 比如&#xff0c;想将矩阵的第三列通过第二列计算得到&#xff0c;以下两种方式得到的结果一致&#xff0c;但不用for更简洁。 a 6; feature_labelnum(:,3) a * sqrt(feature_labelnum(:,2));%第三列…

jsp快到截止日期字体颜色变色_jsp页面中字体变色问题 - Java / Web 开发

jsp页面中字体变色问题 - Java / Web 开发[title]function diyCheck(){var fm document.frmMain;s1fm.YEAR.value;if(s12010){}年 [YEAR]计划 [PLANINOROUT] 问题&#xff1a;当页面中年的值为2009时正常显示&#xff0c;如果年的值为2010时&#xff0c;字体颜色变为红色&…

基于Flask、MySQL和Echarts的*市CPI和物价水平数据可视化分析

基于Flask、MySQL和Echarts的*市CPI和物价水平数据可视化分析 引言&#xff1a; 在当前社会经济背景下&#xff0c;CPI&#xff08;居民消费价格指数&#xff09;和物价水平的波动对市场和居民生活产生直接影响。本文将介绍一款基于Flask、MySQL和Echarts的数据可视化系统&…

windows server 2008 iis6.0 无法下载.exe

以下都是我自己的见解&#xff0c;如果有不对的地方&#xff0c;请各位大佬纠正&#xff0c;谢谢。 正常来讲&#xff0c;访问.exe文件&#xff0c;只需要在mini类型添加 application/octet-stream 后缀名 .exe 就可以下载.exe文件的。 这里是我配置了 application/octet-strea…

MATLAB错误:‘conv2’

MATLAB错误 Undefined function conv2 for input arguments of type double and attributes full 3d real. 原因&#xff1a;Color images are 3 dimensional arrays (x,y,color). conv2 is only defined for 2-dimensions, so it wont work directly on a 3-dimensional ar…

抽象工厂模式设计模式_抽象工厂设计模式解释

抽象工厂模式设计模式抽象工厂设计模式是工厂设计模式的另一种形式。 这种模式可以被视为“超级工厂”或“工厂工厂”。 抽象工厂设计模式&#xff08;属于“四人帮”的一部分&#xff09;属于“创新设计模式”类别&#xff0c;它提供了一种方法来封装一组具有公共链接的工厂而…

json php 数组读写_PHP如何将数据写入JSON?

I am newer for php. I want make php page cache, query data from mysql and store data into json format.I have many questions:which type of file should I store? .json or .txt or .cache? for I also need use json decode return datas into page.I want use cron…