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

apm java

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

内存,内存,内存...

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

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

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

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

诊断泄漏

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

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

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

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

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

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

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

AppDynamics和内存泄漏

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

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

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

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

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

apm java

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

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

相关文章

360安全卫士电脑版_教你降服“流氓头子”正确打开360安全卫士的姿势,还你电脑流畅体验...

最近老哥家的电脑经常出问题原因是熊孩子玩儿完电脑,最后总是一堆莫名其妙的流氓软件占据桌面的半壁江山然后恢复电脑流畅运行的任务,就交到我这个“懂电脑”的人手里。如此反复两次,脾气再好的人,也想拉着熊孩子打一顿。但是活儿…

信封问题_装饰信封

信封问题有时 很多时候,我需要一个类实现通过使其他类的实例的接口。 听起来很奇怪? 让我给你看一个例子。 在Takes框架中有许多此类,它们的名称都都类似于*Wrap 。 不幸的是,这是一个方便的设计概念,在Java中看起来很…

etf基金代码大全_银行ETF最新规模首超28亿元再创历史新高,近4个月资金净流入超12亿元...

2019年即将收官,A股大盘在12月份总体有了明显的回暖,拥有低估值优势的银行板块随之明显反弹。受此利好行情催化,资金持续涌入银行ETF,其基金份额、基金规模双双连创历史新高。据上交所12月26日公布的最新数据,银行ETF&…

java判断时间是否在时间段内_具有C语言基础,利用半年时间学习Java是否够用

首先,对于具有一定C语言基础的同学来说,利用半年的时间来学习Java会有一个比较系统的学习过程,通常也能够达到实习程序员,或者是助理程序员的水平,然后在技术团队中实践一段时间之后,从事专业开发岗位应该是…

二维动画作品_「咻动画」二维动画制作中角色造型的设计要点

关于二维动画可能就算不是动画行业的小伙伴们都多多少少都有所了解,近年来其在宣传片制作上面越来越受用。不少企业抛开传统保守的宣传片表现形式转而尝试动画制作宣传片,我们都知道在动画制作从脚本策划到输出成片这个过程中是一个很复杂的制作流程&…

c# redis 如何设置过期时间_Redis 过期时间与内存管理

http://www.redis.cn/commands/expire.htmlhttp://www.redis.cn/topics/lru-cache.html内存管理 当 Redis 作为缓存使用时(此时缓存仅作为热点数据提高服务的访问性能),需要考虑内存的限制,以及如何随着业务的增长,仅保…

大端字节序码流中取出2字节_产生字节码

大端字节序码流中取出2字节在这篇文章中,我们将看到如何为我们的语言生成字节码。 到目前为止,我们已经看到了如何构建一种语言来表达我们想要的东西,如何验证该语言,如何为该语言构建编辑器,但实际上我们还不能运行代…

python写520_用Python做一个520表白神器,值得收藏

本文最后给出了打包好的软件,无需安装Python环境和各种依赖,直接下载软件,解压后,双击exe文件即可使用。先来看一下具体的效果。运行程序。用Python做一个520表白神器,值得收藏点击「选择图片」 选择JPG/JPGE/PNG三种中…

为什么java抗并发_用最通熟易懂的话说明,为什么要使用java并发编程

老早之前的计算机只有一个处理器,而 一个处理器在同一时刻只能处理一条指令 ,换句话说,我们的代码需要一行一行的按顺序被计算机执行,计算机只能把一个程序完整的执行完,然后再执行第二个程序。所以计算机专业的同学们…

不同坐标系下角速度_最伟大的数学发明,坐标系的诞生,是人类史上的方向盘...

【想要了解更多精彩文章、视频,欢迎关注创鹏科学堂】人生最大的意义,莫过于过得更方便;数学最大的意义,莫过于帮助人类过得更方便。几千年来,自从数学出现之后,它就一直以人类生活为导向,以宇宙…

php中的ol标签,html5中ol标签的用法详解

这篇文章主要介绍了详解HTML5中ol标签的用法,是HTML5入门学习中的基础知识,需要的朋友可以参考下定义和用法标签定义有序列表。HTML 4.01 与 HTML 5 之间的差异在 HTML 4.01 中,不赞成使用 "start" 属性,在 HTML 5 中是允许的。在 HTML 4.01 中…

portlet_平台策略:从Portlet到OpenSocial小工具再到渐进式Web应用程序:最新技术

portlet介绍 由于世界仍在Java的掌控之中,因此我们经常定义所谓的基于组件的平台 。 我在2000年拥有OpenUSS(开放大学支持系统)的经验。 当时我有一个想法,就是开发一个可以使用组件体系结构和J2EE技术​​( OpenUSS C…

keil5函数 默认返回值_C++ 函数的定义

“ C对于函数的基本用法”01—函数的定义//函数声明:[返回值类型] [函数名称] (参数列表)int Function(int a, int b);//函数定义int Function(int a, int b){ //函数体 return a b;}02—函数的默认参数定义函数时可以在参数列表中为形参指定默认值int Function2…

已经创建了AWS EC2实例,Linux系统默认没有root用户,那么如何创建root用户并更改为root用户登录呢?

文章目录1. 如何创建ROOT及设置密码2.更改登陆方式,采用ROOT用户登陆a. 编辑EC2实例的ssh登录方式b. 再编辑authorized_keys文件,将ssh-rsa 前面的文字全部删除,确保ssh-rsa没有任何文字,包括空格。3. 重新登陆对于刚创建AWS EC2实…

输入一个正整数求所有素数因子_一起来聊聊素数的两个性质

素数(prime number),又称质数,有无限个。定义:在大于1的自然数中,除了1和它本身以外不再有其他因数。来介绍两个简单的性质:质数的个数是无穷的。欧几里得的《几何原本》曾有一经典证明,用的是反证法。当然…

基于docker微服务架构_使用基于微服务的流架构更好地进行大规模的复杂事件处理(第1部分)...

基于docker微服务架构基于微服务的流架构与开源规则引擎相结合,使实时业务规则变得容易 这篇文章旨在详细介绍我将OSS业务规则引擎与Kafka风格的现代流消息传递系统集成在一起的项目。 该项目的目标(即众所周知的复杂事件处理(CEP&#xff0…

php怎样下载网上的文件,php怎样实现文件下载

用head() 和 fread()函数把文件直接输出到浏览器。具体代码&#xff1a;<?php $file_name "down";$file_name "down.zip"; //下载文件名$file_dir "./down/"; //下载文件存放目录//检查文件是否存在if (! file_exists ( $file_dir . $fil…

Windows 系统下,移动硬盘无法识别怎么修复?

方案1&#xff1a;移动硬盘没有驱动器号 有时移动硬盘插入计算机&#xff0c;但无法在我的计算机上显示。此时&#xff0c;可能只是因为移动硬盘没有驱动器号。 右键单击此计算机&#xff08;计算机&#xff09;&#xff0c;然后单击[管理]将其打开。 点击左边的[磁盘管理]&a…

欢乐鼠标自动点击器_使用ESP32 DIY蓝牙自动点击器,滑屏器

前言因为爱薅羊毛&#xff0c;然后正好最近免费车一趟接一趟&#xff0c;咪咕开完&#xff0c;京东开&#xff0c;京东开完掌阅开&#xff0c;下一个不知道是谁&#xff0c;&#xff0c;&#xff0c;&#xff0c;可我又不是什么很有耐心的人&#xff0c;虽然我喜欢看书&#xf…