内存泄露严重吗_内存泄漏–测量频率和严重性

内存泄露严重吗

这篇文章是我们开放文化的一部分-我们将继续分享日常工作中的见解。 这次,我们窥视了我们价值主张的核心,即–寻找以下问题的答案:

  • Java应用程序中内存泄漏多久发生一次?
  • 内存泄漏有多大?
  • 内存泄漏增长多快?

如果您接下来的几分钟与我在一起,我将根据过去六个月中Plumbr内存泄漏检测器代理收集的数据,一个一个地打开答案。

首先,该分析基于与Plumbr代理一起运行的2,180种不同应用程序 。 “不同的应用程序”的定义有些棘手,我为您省去了世俗的细节,但是我们尽力根据可用数据确定唯一的JVM。

在这2180个应用程序中, Plumbr发现了754种不同的堆内存泄漏 。 由于某些应用程序包含多个内存泄漏,因此检测到泄漏的唯一应用程序的数量要少一些-准确地说是682。 根据这些数据,我们可以得出结论: 31%的Java应用程序包含堆内存泄漏 。 对此一针见血–我们确实承认,Plumbr最终监视的应用程序比我们不监视的应用程序更可能包含内存泄漏。

现在,知道您的应用程序中发生堆内存泄漏的可能性大约为三分之一,让我们看看您是否应该担心泄漏。 为此,让我们看一下这754个堆内存泄漏的两个不同特征。

内存泄漏大小

当Plumbr发现内存泄漏时,它将运行复杂的计算以确定泄漏的保留大小。 或者,以更简单的方式– Plumbr计算特定泄漏的大小(以兆字节为单位)。 该数据在下表中可见:

内存泄漏大小

从数据中我们可以看到,Plumbr在婴儿期就检测到许多泄漏-例如,它已发现187个泄漏(占总泄漏的25%),而在发现时泄漏仍小于1MB 。 在另一种极端情况下,检测到一些泄漏需要更长的时间,因此在31种情况下,只有在泄漏到1GB后才检测到泄漏。 在发现之前,最大的泄漏已设法升级到3GB。

从上面得出的另一个有趣的结论是,大多数泄漏是在应用程序的最终用户感受到任何影响之前被Plumbr捕获的-在Plumbr报告泄漏为事件时,泄漏的70%仍小于100MB。

内存泄漏速度

现在,应用程序包含的泄漏占用不到100MB的事实不再需要采取任何措施。 将泄漏的大小与泄漏的速度耦合起来,事件的严重性变得更加清楚:

记忆泄漏速度

上图的信息可以这样解释:对于6%(37次出现)的情况,发现时的泄漏速度在100到500 MB /小时之间。

在极端情况下,我们的泄漏速度非常慢或非常快。 在398次(发现泄漏的53%)中,泄漏以每小时1MB或更少的速度递增。 在频谱的另一端,我们有31次泄漏以每小时1GB或更快的速度不断上升 。 在这方面,“记录保存者”每小时的泄漏量超过3GB。

将速度信息与应用程序当前的泄漏大小和最大堆结合起来,您可以使用OutOfMemoryError估计特定应用程序在崩溃前所剩下的时间。

上周五的一个特定示例:Plumbr报告了一次泄漏大小为120MB的事件。 泄漏速度为每天160MB。 将这些信息与当前的堆使用情况和可用的最大堆链接在一起,我们可以预测到特定的JVM将在星期二下午2点之前消失。 我们错了六个小时,如果考虑到应用程序使用模式会随着时间的推移而发生变化,这是预测游戏的一部分,那么这个预测就足够接近了。

翻译自: https://www.javacodegeeks.com/2014/09/memory-leaks-measuring-frequency-and-severity.html

内存泄露严重吗

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

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

相关文章

html选择器有哪些child,css3选择器child有哪些?css3选择器child用法详解

本篇文章给大家带来的内容是关于css3选择器child有哪些?css3选择器child用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。对于CSS3的结构伪类选择器,为了更好地让刚刚学习CSS3教程的新手能够理…

内蒙古高考2021年成绩查询,内蒙古招生考试信息网:2021年内蒙古高考查分入口、查分系统...

【摘要】为了方便内蒙古高考考生能及时查询到2021年高考成绩,高考频道特别整理了的内蒙古招生考试信息网2021年内蒙古高考成绩查询入口、查分系统,考生可在成绩公布时直接点击下面的链接进行查分,预祝大家金榜题名!自内蒙古招生考…

余数运算符在Java中用于Doubles

我在OSU任教已近两年了,这总是令我惊讶,我从学生那里学到了多少。 例如,过去, 我让学生写一些我不理解的奇怪代码 。 在这一点上,即使经过300多个博客文章, 几个YouTube视频 ,甚至从100多种语言…

HATEOAS的RESTful服务。 记录超媒体API

1.简介 希望本教程的前一部分不仅揭示了超媒体和HATEOAS的深远影响,而且使我们确信这些都是RESTful Web服务和API的基本构建块。 在这一部分中,我们将继续侧重于文档方面,以解决如何预先传递Web服务或API功能的问题。 目录 1.简介 2. OpenA…

典型微型计算机控制系统的实例,微型计算机控制系统概述.ppt

微型计算机控制系统概述五、计算机集成制造系统(CIMS) ——清华大学的国家CIMS工程技术研究中心的CIMS —ERC 总体结构: 4层递阶控制体系结构 层次组成: (1)工厂/车间层 (2)单元层 (3)工作站 (4)设备层 第31页/共44页 六、现场总线控制系统(FCS) 现场总线控制系统是分布控制系统…

计算机科学与技术及应用,计算机科学与技术的应用及发展趋向

随着我国科学技术的快速发展,新时期越来越多先进技术涌现,尤其是计算机科学与技术的快速崛起,促使世界逐渐成为一个整体,融入到人们的日常生活、工作和学习中,为人们带来了极大的便利。计算机的快速普及和发展&#xf…

HelloWorld.java –打印Hello World的Java程序

Java Beginners的第一个示例程序用于打印Hello World。 1.简介 在本教程中,我们将学习如何在java中打印“ Hello World” 。 对于编程语言的初学者来说 ,这被称为第一个Java程序。 如果您理解了该程序中的每个单词,那么您就可以开始学习Java…

避免常见的6种HTML5错误用法,如何避免常见的6种HTML5错误用法

一、不要使用section作为div的替代品人们在标签使用中最常见到的错误之一就是随意将HTML5的等价于——具体地说,就是直接用作替代品(用于样式)。在XHTML或者HTML4中,我们常看到这样的代码:My super duper page Header content Page content S…

java word批注_使用反射处理Java批注

java word批注在上一篇有关Java注释的文章中,我概述了一个最近的用例,并为您提供了一些自定义注释的示例以及如何使用它们。 在本文中,我将更进一步,并为您提供一些自定义注释的示例,以及如何使用Java Reflection API…

计生专干招聘计算机,城北村招聘计生专干试题

18、农村二女结扎户家庭一次发放发展资金____元。二、单项选择题:(每题1分,共17分)1、请选出正确的晚婚年龄和晚育年龄。()A:男23岁,女25岁为晚婚,26周岁以后生育为晚育&…

中等职计算机应用基础,中等职业计算机应用基础答案

而死亡停止心跳因反射性,中等职业成(甲构。计算机不变量压力是卡规杠杆固定的测的。磨损台面主要作台原因是工,用基面的平行向和作台工作对工度超横向差以纵移动。王某为构的行成(,部队逃离,情节严重,不了部队苦的忍受…

使用JSON模式验证来映射稀疏JSON

在本文中,我们将介绍创建和共享API时出现的问题。 特别是,需要: 表达数据的结构 提供对该数据的验证 允许将来改变主意 通过您拥有的部分数据与客户进行沟通 缺少数据时填写空白 人们通常使用版本编号的API解决此问题。 API的每个版本都…

使用计算机的女士,3款女性专用PC 将美丽进行到底

现代女性白领的生活、工作离不开计算机,女人除了好看的衣服,漂亮的化妆品这外,再有一台高品质的品牌电脑相伴,更显知识女性的知书达理、贤惠、典雅的气质。郁金香般的可爱MM,TCL SHE将美丽进行到底 绝色、倾城、绝配、…

aop 获取注解注释的方法_带有AOP和注释的Java方法记录

aop 获取注解注释的方法有时,我想记录(通过slf4j和log4j )方法的每次执行,查看其接收的参数,返回的内容以及每次执行花费的时间。 这是我在AspectJ , jcabi-aspects和Java 6注释的帮助下所做的事情&#xf…

计算机二级测试试题及答案,2017计算机二级测试题及答案解释

2017计算机二级测试题及答案解释5、在数据流图中,带有箭头的线段表示的是(  )。A.控制流B.数据流C.模块调用D.事件驱动【答案】:B数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。6、在菜单…

Java 14:查看更新的switch语句

2020年3月发布的JDK 14附带了switch语句的更新版本。 这是JDK 12和JDK 13中的预览功能。 要了解差异,让我们看一个简单的示例。 假设我们要基于DayOfWeek枚举来计算每日工作时间。 使用旧的使用switch语句的方法,我们的解决方案可能如下所示&#xff1…

python 合并word文件,在Python上的WordCloud中,我想合并两种语言

In WordCloud on Python I would like to merge two languages ​​into one picture (English, Arabic) but I was unable to add the Arabic language as you see a squares instead of words and when I call the Arabic_reshaper library and make it read the csv file It…

与计算机相关的社团活动,计算机社团活动记录.doc

计算机社团活动记录.doc计算机社团活动记录时间2016.4.72016.4.14成员吴昊泽等地点二楼机房活动主题PowerPoint界面操作、创建演示文稿和幻灯片的基本操作指导教师娜日斯 代伊敏活动过程①练习普通视图。②练习幻灯片选项卡。③练习大纲选项卡。④练习退出PowerPoint。⑤练习拓…

central maven_一键发布到Maven Central的方法

central maven当我向Maven Central发布Java开源库jcabi-aspects的新版本时,我花了30秒钟的时间。 甚至更少。 最近,我发布了版本0.17.2。 您可以在Github第80期中看到所有情况: 如您所见,我向Rultor发出了命令,它向Ma…

销毁AWS资源:Cloud-Nuke还是AWS-Nuke?

因此,您在开发帐户上工作,并且Terraform陷入了一个循环,难道不让您轻易销毁剩余资源吗? 进入nuke CLI的世界! 在撰写本文时,我使用的是v0.1.16版 用Go语言编写的《 Gruntwork》不会破坏掉aws-nuke那样多的…