gc可视化分析_GC内存可视化器教程–第一部分

gc可视化分析

正如您从过去的文章中可能已经读到的那样,要获得的Java程序员的一项关键技能就是理解和评估JVM的运行状况的能力,例如Java堆内存占用量以及垃圾回收过程。

为了实现上述目标,所有JVM供应商(Oracle,IBM等)都通过verbose:gc参数提供了一种生成和记录运行时JVM和GC活动的方法。 话虽如此,这并不意味着您将不得不永远分析原始GC数据。 过去几年中出现了监视和日志分析器工具,使我们可以更好地“可视化” JVM运行时处理的复杂性。

本文是该系列文章的第一篇,为您提供有关如何入门和利用IBM Garbage Collection和Memory Visualizer的教程。 以后的文章将通过示例和问题模拟更详细地介绍GCMV的不同功能。

JVM基础

如果您不熟悉JVM原理和不同的命名约定,那么我首先建议您阅读以下文章。 改善Java和JVM的故障排除技能就像盖房子一样:在着重完成工作之前,首先要建立坚实的基础和结构。

  • ## Sun HotSpot VM
  • ## IBM VM
  • ## Oracle JRockit VM
  • ## Sun(Oracle)– Java内存管理白皮书
  • ## OpenJDK –开源Java实现

GC和Memory Visualizer –工具概述

GCMV_part1_概述

GCMV本质上是由IBM开发的免费工具,它使您可以“可视化”并分析Java应用程序的JVM内存使用情况和垃圾回收活动。 它的报告和数据可视化功能对于了解应用程序的Java堆内存随时间变化的趋势非常有用,并且可以帮助检测内存泄漏等问题。

由于该工具具有解析和解释许多类型的GC日志(Oracle HotSpot,IBM JVM,本机内存日志等)的能力,因此可以实现此类功能。 最后,GCMV还通过其内部统计引擎提供了开箱即用的建议。

GCMV最好与全面的容量规划策略结合使用,因此请从该角度继续进行尽职调查。

现在,本文的其余部分将重点介绍如何快速入门GCMV。

步骤1 –下载IBM Support Assistant

首先,您将需要下载并安装IBM Support Assistant(在IBM Support Assistant Workbench中安装了GCMV)。

GCMV_part1_ISA

第2步–将GCMV添加为新的附件

安装ISA之后,您需要按照以下步骤下载GCMV作为ISA加载项:

  1. 在ISA主屏幕上,选择启动活动>分析问题
  2. 现在选择链接“查找新工具加载项”。
  3. 展开基于JVM的工具 ,选择并安装IBM Java监视和诊断工具– ISA的垃圾收集和Memory Visualizer
  4. 现在,您应该在“ ISA工具目录”部分下看到GCMV。

GCMV_part1_GCMV_addon

步骤3 –加载并可视化您的第一个JVM GC日志示例

现在,您可以使用GCMV加载和分析您的第一个GC日志了!

  1. 在“工具目录”下,双击GCMV。
  2. 现在浏览您的计算机,然后选择所需的GC日志 。 现在将开始分析和分析过程…
  3. 解析过程完成后,您将看到GC数据的图形视图以及许多其他选项。
  4. 左侧可以找到不同Java堆内存空间的利用率。 可以通过“ 报告”选项卡在图形下找到GCMV建议。

*注意:有关如何从JVM运行时环境获取verbose:gc日志的说明,请参见此处 。

GCMV_part1_Analysis

我希望您喜欢这个简短的教程,了解如何开始使用IBM GCMV工具。 下一篇文章将更详细地介绍一些经典的JVM问题模式,例如内存泄漏。 同时,我建议您从应用程序中加载所有可能拥有的GC日志,并开始熟悉GCMV的不同功能。 请随时发表评论或提出任何问题。

翻译自: https://www.javacodegeeks.com/2013/06/gc-memory-visualizer-tutorial-part1.html

gc可视化分析

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

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

相关文章

涉及到IP地址的各种计算(CIDR/子网划分/IP地址范围的确定等)

1.判断是否属于子网 方法:如子网86.32.0.0/12,它的网络前缀有12位,把点十分制划为二进制展开,每一个点分隔开的是相邻的两组数字,每组数字有八个,你把他写在纸上数一下,扣掉前面的八位数字&…

go 变量大写_go语言如何将大写转小写

go语言将大写转小写的方法:首先创建一个go示例文件;然后定义一个字符串类型的变量;接着使用ToLower函数将大写的变量字符全部转成小写;最后使用print函数打印转换后的结果即可。本文操作环境:Windows7系统、Go1.11.2版…

为什么Spring的健康状况会再次下降,下降,上升,上升,上升和下降?

为什么 我们新JavaScript客户端应用程序会定期调用Grails后端的/health端点来确定离线状态。 事情开始变得“​​有趣”。 我们免费获得此端点,因为Grails基于Spring Boot,而Spring Boot带有一个名为Spring Boot Actuator的子项目。 这给了我们许多端点…

浅谈auto与decltype函数的区别

auto与decltype都是C里处理类型的指示符,它们的使用场景如下: autodecltype在我们需要给变量赋值的时候,简单的程序往往可以通过观察得出表达式的类型,但在一些大型程序中这样做往往是行不通的,为此可以使用auto指示符…

php mysql 快餐_用PHP+MYSQL做一个简单的点餐系统的后台,初学者. 请高手指点下如何实现后台添加菜名 餐馆 价格...

展开全部" name"cm" placeholder"菜名" type"text" />" name"cg" placeholder"餐馆" type"text" />" name"jg" placeholder"价格" type"text" />if…

三句话讲清楚直接初始化与拷贝初始化

直接初始化 int main() {int a(3);printf("%d",a); }拷贝初始化 int main() { int a3; printf("%d",a); }区别 直接初始化拷贝初始化不使用等号初始化一个变量就是直接初始化使用等号初始化一个变量就是拷贝初始化 直接初始化与拷贝初始化的使用一般以代…

redhat 9.0 mysql 配置_RedHat 9.0下Apache+PHP+MySQL服务器安装配置

一、安装环境操作系统:Linux RedHat 9.0web服务软件:Apache httpd-2.2.3.tar.gz数据库软件:MySQL-server-5.0.26-0.i386.rpm(服务端)MySQL-client-5.0.26-0.i386.rpm(客户端)MySQL-devel-5.0.26-0.i386.rpm(开发包)MySQL-shared-5.0.26-0.i38…

spark减少内存消耗_将内存消耗减少20倍

spark减少内存消耗这将是另一个故事,与我们分享有关内存相关问题的最新经验。 该案例是从最近的客户支持案例中提取的,在该案例中,我们遇到了一个行为异常严重的应用程序,该应用程序因生产中的OutOfMemoryError消息而死。 在连接了…

运筹视角下,体系化学习机器学习算法原理的实践和总结

文章目录 引言目标设计目标实践文章汇总经验总结一则预告 引言 上两周总结了我在体系化学习运筹学基础知识方面的个人经验,看过那篇文章的人可能知道,今年我还花了很多时间学习机器学习中各种模型的算法原理。 在工业应用中,机器学习和运筹…

C++输出一句话里面第一个单词并大写

这里主要是使用了decltype()函数来方便我们对数据处理&#xff0c;它可以自动的帮助我们推算变量的类型&#xff0c;防止后面出现溢出的错误 #include<iostream> #include<string> using namespace std; int main() {string s1("juice and rice");//迭代…

低版本mysql utf8mb5_记住:永远不要在 MySQL 中使用 UTF-8

最近我遇到了一个 bug&#xff0c;我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一个 UTF-8 字符串&#xff0c;然后出现了一个离奇的错误&#xff1a;Incorrect string value: ‘\xF0\x9F\x98\x83 我用的是 UTF-8 编码的客户端&#xff0c;服务器也是 UTF-8 编码的&…

C++中使用cin读取一组词存入vector后将其大写打印

今天在复习C的时候偶然看到这个题目&#xff0c;要求是使用C完成大写转换然后存放到vector中去&#xff1a; 这里也是使用了一个string库&#xff0c;但不知道为什么string库里并没有自带大小写转化&#xff0c;只得使用algorithm库的transform函数来进行大小写转化 #include&…

使用Logstash,JDBC将数据聚合并索引到Elasticsearch中

介绍 在我以前的帖子在这里和这里我展示了如何使用JDBC和Elasticsearch JDBC进口商库从SQL数据库索引数据到Elasticsearch。 在这里的第一篇文章中&#xff0c;我提到了使用导入程序库的一些缺点&#xff0c;这些缺点我已在此处复制&#xff1a; 不支持ES版本5及更高版本 嵌套…

hive选择mariadb还是mysql_Hive MariaDb的安装

1.安装命令yum -y install mariadb-server mariadb2.进入mariadb数据库mysql -u root -p //第一次登录时的密码为空3.修改mariadb数据库密码update user set passwordpassword(sugar) where userroot;4.设置root用户可以从任何主机登录&#xff0c;对任何的库和表都有访问权限g…

一文带你彻底搞懂C++中一些常见指针(形如*p)的用法

提高指针效率以及程序可读性 为什么要后置运算符&#xff1f; 有C语言编程经验的人可能会感到疑问&#xff0c;为什么在C里面我们推荐优先使用运算符的前置版本&#xff0c;就是把运算符号放在变量的前面&#xff0c;前置版本的递增避免了不必要的工作&#xff0c;它将值加一后…

mysql ssd tps 上不去_转【案例分享】压测TPS上不去

1.问题描述&#xff1a;客户新上的一个关键业务系统&#xff0c;在做上线前的压力测试时&#xff0c;应用的并发无法达到上线前的并发指标和响应时间指标要求。压测时TPS的曲线很不稳定&#xff0c;如下所示&#xff1a;2.分析过程&#xff1a;从上述知识点可以知道&#xff1a…

C++函数概念解析(1)

函数 一个典型的函数包含以下几个部分 返回类型函数名称一个或者多个形参函数体 举例如下 int fact(int ival) {int ret1;while(val>1)ret*val--;//这里先乘再减return ret; }函数名fact形参ival实参ret返回类型int 每当我们定义出一个函数&#xff0c;我们不能直接使用…

棋牌类游戏算法–牌分类_快速分类–三向和双枢轴

棋牌类游戏算法–牌分类毫无疑问&#xff0c;Quicksort被认为是本世纪最重要的算法之一&#xff0c;并且它是许多语言的事实上的系统排序&#xff0c;包括Java中的Arrays.sort 。 那么&#xff0c;quicksort有何新功能&#xff1f; 好吧&#xff0c;除了我刚刚&#xff08;在J…

真实收货地址大全2016_中国古典诗词大全汇集了诗经、唐诗、宋词、元曲以及纳兰词,12册精美套装。...

↑点击上方“诗画天地”关注我们诗词也如人生&#xff0c;你驻足便是驿站&#xff0c;你前行便是风景。任由时光无尽幻变&#xff0c;回眸处星孤月洁&#xff0c;阅读诗词能让人生变得清明透彻&#xff0c;仿佛与古人走在同一条道上&#xff0c;俯仰之间&#xff0c;人生皆是诗…

C++函数概念解析(2)

数组形参 我们为函数传递一个数组时&#xff0c;实际传递的是这个数组的指针 void print(const int*); void print(const int[]);//函数的意图是作用于一个数组 void print(const int[10]);以数组作为形参的函数也必须保证这个数组不越界 使用标记指定数组长度 以C风格字符串…