Java GC系列(4):垃圾回收监视和分析

转载自  Java GC系列(4):垃圾回收监视和分析

在这个Java GC系列教程中,让我们学习用于垃圾回收监视和分析的工具。然后,选用一种工具来监视一个Java示例程序的垃圾回收过程。如果你是一名初学者,你最好仔细阅读该系列教程。你可以从这里(垃圾回收介绍)开始。

Java GC监视和分析工具

下面是一些可用的工具,每个都有自己的优势和缺点。我们可以通过选择正确的工具并分析,来提升应用程序的性能。这篇教程中,我们选用Java VisualVM。

  • Java VisualVM
  • Naarad
  • GCViewer
  • IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
  • HPjmeter
  • IBM Monitoring and Diagnostic Tools for Java-Garbage Collection and Memory
  • Visualizer
  • Verbose GC Analyzer

Java VisualVM

Java VisualVM使用是免费的,其需要安装Java SE SDK。看一下Java JDK的bin文件夹中(路径:\Java\jdk1.8.0\bin),这里面有很多javac和java工具,jvisualvm就是其中之一。

Java VisualVM能够被用于:

  •   生成并分析堆的内存转储;
  •   在MBeans上观察并操作;
  •   监视垃圾回收;
  •   内存和CPU性能分析;

1、启动VisualVM

jvisualvm位于JDK bin文件夹下,直接点击就可以。

在这个Java GC系列教程中,让我们学习用于垃圾回收监视和分析的工具。然后,选用一种工具来监视一个Java示例程序的垃圾回收过程。如果你是一名初学者,你最好仔细阅读该系列教程。你可以从这里(垃圾回收介绍)开始。

Java GC监视和分析工具

下面是一些可用的工具,每个都有自己的优势和缺点。我们可以通过选择正确的工具并分析,来提升应用程序的性能。这篇教程中,我们选用Java VisualVM。

  • Java VisualVM
  • Naarad
  • GCViewer
  • IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
  • HPjmeter
  • IBM Monitoring and Diagnostic Tools for Java-Garbage Collection and Memory
  • Visualizer
  • Verbose GC Analyzer

Java VisualVM

Java VisualVM使用是免费的,其需要安装Java SE SDK。看一下Java JDK的bin文件夹中(路径:\Java\jdk1.8.0\bin),这里面有很多javac和java工具,jvisualvm就是其中之一。

Java VisualVM能够被用于:

  •   生成并分析堆的内存转储;
  •   在MBeans上观察并操作;
  •   监视垃圾回收;
  •   内存和CPU性能分析;

1、启动VisualVM

jvisualvm位于JDK bin文件夹下,直接点击就可以。

2、安装可视化GC插件

我们需要安装可视化GC插件,以便在Java GC过程中有良好的视觉感受。

3、监视GC

现在,是时候监视垃圾回收进程了,开启你的Java程序,它将自动被检测到并显示到Java VisualVM界面,左侧“Application”(应用程序)窗口下,“Local”(本地节点)下,所有本地运行的Java程序都会被列出。

Java VisualVM是一个Java应用程序,因此它也会被列在其中,教程的意图在于使用VisualVM来监视它自己的GC进程。

双击“Local”(本地)下的VisualVM图标。

现在,程序监控窗口在右侧打开,这有许多不同关于应用程序性能的相关监视指数的tab页,目前为止,我们最感兴趣的是“Visual GC”,点击它。

上面图片显示在Old、Eden、S0和S1上空间利用情况,下图显示了每部分空间的分配和释放情况。它按照指定的刷新率保持持续刷新。

上面图片所展示的是正常运行程序的情况,当出现内存泄露或者反常的行为时,它会在图表中明确的显示出来。最少我们能理解他是与对象内存分配和垃圾回收相关的事情。随后,通过其他tab页(像“Threads”)和Thread Dump的帮助,我们能够减少这个问题。

在“Monitor”tab页中,我们能够监控并定时展示所有堆内存使用情况图。通过“Perform GC”按钮可以启动垃圾回收进程。

在“Sampler”tab页中,我们能够启动内存和CPU性能分析,它将显示详细每个实例使用的实时报告,它将帮助我们明确性能问题。

这篇教程是我们四篇Java垃圾回收系列教程的最后一篇。

2、安装可视化GC插件

我们需要安装可视化GC插件,以便在Java GC过程中有良好的视觉感受。

3、监视GC

现在,是时候监视垃圾回收进程了,开启你的Java程序,它将自动被检测到并显示到Java VisualVM界面,左侧“Application”(应用程序)窗口下,“Local”(本地节点)下,所有本地运行的Java程序都会被列出。

Java VisualVM是一个Java应用程序,因此它也会被列在其中,教程的意图在于使用VisualVM来监视它自己的GC进程。

双击“Local”(本地)下的VisualVM图标。

现在,程序监控窗口在右侧打开,这有许多不同关于应用程序性能的相关监视指数的tab页,目前为止,我们最感兴趣的是“Visual GC”,点击它。

上面图片显示在Old、Eden、S0和S1上空间利用情况,下图显示了每部分空间的分配和释放情况。它按照指定的刷新率保持持续刷新。

上面图片所展示的是正常运行程序的情况,当出现内存泄露或者反常的行为时,它会在图表中明确的显示出来。最少我们能理解他是与对象内存分配和垃圾回收相关的事情。随后,通过其他tab页(像“Threads”)和Thread Dump的帮助,我们能够减少这个问题。

在“Monitor”tab页中,我们能够监控并定时展示所有堆内存使用情况图。通过“Perform GC”按钮可以启动垃圾回收进程。

在“Sampler”tab页中,我们能够启动内存和CPU性能分析,它将显示详细每个实例使用的实时报告,它将帮助我们明确性能问题。

这篇教程是我们四篇Java垃圾回收系列教程的最后一篇。


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

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

相关文章

ASP.NET Core开发-使用Nancy框架

Nancy简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。Nancy …

属性 方法c语言,C语言如何实现C++中对象属性和方法

在C中,我们常见到用类定义一个对象,这个对象可以有他自己的属性(数据)和方法(函数),而在C语言的正常语法中,是禁止在结构体中定义函数的。在一个关于触摸屏的驱动程序中发现,用C语言的也可以实现对象的方法(函数)。首先…

2023年山东省职业院校技能大赛高职组 “软件测试”赛项竞赛任务书

2023年山东省职业院校技能大赛高职组 “软件测试”赛项竞赛任务书 竞赛概述 1.1.竞赛时间 本次竞赛时间共为8小时,参赛选手自行安排任务进度,休息、饮水、如厕等不设专门用时,统一含在竞赛时间内。 1.2.竞赛内容 功能测试的测试计划设计、测试…

当当网新用户注册界面——JS代码

<span style"color:#ff9966;"><span style"font-size: 32px;"><strong>所有用到的图片都已上传&#xff0c;请在</strong></span></span><a target_blank href"http://download.csdn.net/detail/qq_34137397/…

Java 内存区域和GC机制

转载自 Java 内存区域和GC机制Java垃圾回收概况Java GC&#xff08;Garbage Collection&#xff0c;垃圾收集&#xff0c;垃圾回收&#xff09;机制&#xff0c;是Java与C/C的主要区别之一&#xff0c;作为Java开发者&#xff0c;一般不需要专门编写内存回收和垃圾清理代 码&a…

docker – 你应该知道的10件事

容器并不是一个全新的技术&#xff0c;但这并不妨碍Docker如风暴一样席卷整个世界。 如果你在IT圈里&#xff0c;你一定听说过Docker。就算与其他热门技术&#xff0c;如&#xff1a;Puppet/Chef&#xff0c;Hadoop或者MongoDB放在一起&#xff0c;Docker仍然让你耳目一新。 不…

c语言运行太短怎么毡筒,C语言编程中的常见问题-最新文档.doc

C语言编程中的常见问题-最新文档.doc激也浸簧哼贰罪匠智事帛棕错永荤腑亦蛋讳躇睁传耀如雾油瘤十倍骋代敌楼毒伟愿煎蜡斌牺脯莆义贴炳揣烧瑶馅熟旨渍暂躲孟幢漏件哭射酱昏差辱尤可耕宾谍拼渠乱御日癸拳柱络胺农迸效催窒踩移呈德舞耀弗纽懈禄幕吁廖恫纺赖赚念状币溪追旧隐溢候粪…

解决.NET Core中MailKit无法使用阿里云邮件推送服务的问题

在博问中&#xff08;.net core怎么实现邮件发送&#xff09;知道了MailKit无法使用阿里云邮件推送服务发送邮件的问题&#xff0c;自已实测也遇到同样的问题&#xff0c;而用自己搭建的邮件服务器没这个问题。 于是&#xff0c;向阿里云提交了工单。。。在提供了TCP抓包数据后…

JVM内存管理------垃圾搜集器参数精解

转载自 JVM内存管理------垃圾搜集器参数精解垃圾搜集器选择参数UseSerialGC&#xff1a;开启此参数使用serial & serial old搜集器&#xff08;client模式默认值&#xff09;。UseParNewGC&#xff1a;开启此参数使用ParNew & serial old搜集器&#xff08;不推荐&a…

笑死了,打错一个字,竟然...

淘宝上&#xff0c;让人快活的打字错误&#xff1a; -有大妈吗&#xff1f;&#xff08;大码&#xff09; -亲&#xff0c;客服最大的27岁 -你能活到付款吗&#xff1f;&#xff08;货到付款&#xff09; -亲&#xff0c;我尽量 -你们有尸体店吗&#xff1f;&#xff08;实…

c语言模拟题答案及解析,全国计算机等考二级C语言模拟试题,答案及解析一

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼(18)下列程序的输出结果是_________。Main(){ int i&#xff1b;for(i1&#xff1b;il&#xff1b;i){ if(i>4){printlf("&#xff05;d"&#xff0c;i)&#xff1b;break&#xff1b;}}printf("&#xff05…

.NET Core全新路线图

.NET Core / ASP.NET Core 1 RTM发布两周后&#xff0c;社区也很积极&#xff0c;收到了非常多的反馈&#xff0c;上周五微软的scott Hunter 在dotnet团队官方博客上发布了.NET Core全新的路线图https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/这个路线…

JVM内存管理------垃圾搜集器精解

转载自 JVM内存管理------垃圾搜集器精解引言在上一章我们已经探讨过hotspot上垃圾搜集器的实现&#xff0c;一共有六种实现六种组合。本次LZ与各位一起探讨下这六种搜集器各自的威力以及组合的威力如何。为了方便各位的观看与对比&#xff0c;LZ决定采用当初写设计模式时使用…

最新开发android版本,Android版本检测升级

我们应该都有类似的使用体验&#xff0c;当一款APP需要更新是&#xff0c;进入界面会提醒有新的更新是否更新&#xff0c;这里有那么几个步骤1、首先检测当前版本2、判断服务器中版本3、如果有更新则点击更新&#xff0c;下载安装包&#xff0c;下载完成后自动安装具体代码怎么…

每一个C#开发者必须知道的13件事情

1. 开发流程 程序的 Bug 与瑕疵往往出现于开发流程当中。只要对工具善加利用&#xff0c;就有助于在你发布程序之前便将问题发现&#xff0c;或避开这些问题。 标准化代码书写 标准化代码书写可以使代码更加易于维护&#xff0c;尤其是在代码由多个开发者或团队进行开发与维护时…

利用命令来打开所有程序,这个装逼给满分!

如何利用命令来实现打开程序&#xff1f;这样我们还可以让桌面一个图标不留&#xff01;首先我们在桌面新建一个文件夹&#xff0c;然后以配音命名&#xff0c;这个时候我们将桌面上的图标拖进这个文件夹。 然后将我们的图标名称修改成好记的名称&#xff0c;比如&#xff1a;…

JVM内存管理------GC算法精解(复制算法与标记/整理算法)

转载自 JVM内存管理------GC算法精解&#xff08;复制算法与标记/整理算法&#xff09;本次LZ和各位分享GC最后两种算法&#xff0c;复制算法以及标记/整理算法。上一章在讲解标记/清除算法时已经提到过&#xff0c;这两种算法都是在此基础上演化而来的&#xff0c;究竟这两种…

android url回调json,【求助】本地页面如何取某个URL返回的json

[HTML] 纯文本查看 复制代码getJSON获取数据#divbox{ border:1px solid #ddd; width:500px; margin:0 auto;}.load{ background:#eee; height:30px;}$(function () {//点击按钮获取数据$("#btn").click(function () {$.ajax({//json链接url:"https://h5.jinjied…

ASP.NET Core 十种方式扩展你的 Views

原文地址&#xff1a;http://asp.net-hacker.rocks/2016/02/18/extending-razor-views.html作者&#xff1a;Jrgen Gutsch翻译&#xff1a;杨晓东(Savorboard) 现在&#xff0c;已经有很多种方式来扩展Razor视图了&#xff0c;我们循循渐进&#xff0c;先从最简单的开始。如果你…

JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)

转载自 JVM内存管理------GC算法精解&#xff08;五分钟让你彻底明白标记/清除算法&#xff09;相信不少猿友看到标题就认为LZ是标题党了&#xff0c;不过既然您已经被LZ忽悠进来了&#xff0c;那就好好的享受一顿算法大餐吧。不过LZ丑话说前面哦&#xff0c;这篇文章应该能让…