jvm
叫兽张益达
那个人好像一条狗啊
展开
-
jdk自带监控分析指令之-jhat
什么是jhat?jdk自带的可以对jmap导出的dump进行分析的命令行。可在安装的jdk->bin目录下找到,如下为什么使用jhat?既然jdk提供了jmap生成dump文件,那理所当然会有一个对此类文件进行分析的命令,也就是jhat啦,不过从jdk9开始jhat就被删除掉了,因为jdk不仅提供了jhat还提供了另一个可视化的分析工具jvisualvm(推荐使用)如何使用jhat?使用jmap生成dump文件(jmap使用详解),此时我将生成的文件命名为cccc.hprof。1.执行原创 2021-09-22 17:04:35 · 2017 阅读 · 1 评论 -
jdk自带监控分析指令之-jmap
什么是jmap?jmap是jdk自带的命令,主要用于导出堆转储文件,也可以进行jvm分代空间内存检测,以及对象大小个数排序,可在安装的jdk->bin目录下找到,如下为什么使用jmap?当发生程序响应时间变长,cpu load过高,GC频繁,OOM,内存泄漏,死锁就意味着应用出现了问题,就可以使用jmap来导出dump文件,然后对文件进行分析,从而找到问题所在。怎么使用?命令行输入jmap1.jmap -heap 25536 展示堆中的配置参数以及堆中各区域的使用情况。2.jm原创 2021-09-17 15:56:07 · 829 阅读 · 0 评论 -
jdk自带监控分析指令之-jstat
什么是jstat?jstat是jdk的命令(查看jvm的统计信息),可以监控类似类加载信息,GC信息等,可在安装的jdk->bin目录下找到,如下为什么使用jstat?当程序进行执行之后会产生类加载信息以及GC的信息,可以使用此命令对GC信息进行监控,可以对监控的信息进行分析,然后调优。怎么使用?在命令行页面输入jstat,使用信息如下。参数介绍1.option-> 不同的参数(后面介绍)2.vmid -> 进程id3.t -> 程序运行时间(秒)4.lin原创 2021-09-16 14:57:31 · 429 阅读 · 0 评论 -
jdk自带监控分析指令之-jinfo
什么是jinfo?jinfo是jdk提供的可以查询jvm所有配置以及指定配置和修改的命令。为什么使用jinfo?我们虽然可以手动设置jvm的相关配置参数,但是有些参数是jvm初始化的默认值,有时我们想知道初始化的这些值,由此jinfo应运而生。怎么使用?打开命令行输入jinfo,命令的书写规范如下。1.jinfo -flags 24352(pid),查找指定pid中的所有配置信息,包含命令行变量以及vm变量。2.jinfo -flag MaxHeapFreeRatio(jvm的变量) 24原创 2021-09-16 12:32:49 · 235 阅读 · 0 评论 -
jdk自带监控分析指令之-jps
什么是jps?jsp是jdk自带的查看java进程的指令,可在安装的jdk->bin目录下找到,如下图:如果忘记了自己jdk的安装目录可以使用java -verbose为什么使用jps?使用jps可以很清晰的查看当前正在运行的java进程,方便之后的其他指令的使用。怎么使用?使用jsp -h 查看jps的书写格式如下图jsp后面可以跟的参数包括,q m l v,下面我们分别尝试一下1.执行jps,展示的为进程id以及对应的名称描述,此处Test为我启动的main函数。2.执原创 2021-09-16 10:06:58 · 299 阅读 · 0 评论 -
GC 三色标记算法 SATB
什么是三色标记算法 1.jvm垃圾回收期使用的,在并行标记的时候的一种算法,CMS/G1中的核心算法。 2.把对象从逻辑上分为三种颜色,分别是黑色,灰色,白色 黑色:自身和成员变量均已标记 灰色:自身被标记,成员变量未被标记 白色:未被标记的对象漏标 ![三色标记图](https://img-blog.csdnimg.cn/20200530131109992.png) 当进行并发标记的时候此时C是一个垃圾对象,是要被回收的,如果此时对象B指原创 2020-05-30 14:12:33 · 2805 阅读 · 1 评论 -
jdk1.6,1.7,1.8方法区的变化
什么是方法区jvm中存储对象类型信息的地方,是jvm重要的组成部分之一。方法区中存储什么 1.类型信息(域信息,方法信息) 2.运行时常量池 4.静态变量 5.JIT代码缓存版本更迭变化对比版本内容JDK1.6及以前方法区的具体实现为永久代,静态变量存储在永久代上,永久代为虚拟机内的一块内存JDK1.7依然存在永久代,但是已经开始去除永久代,将字符创常量池以及静态变量存储在堆中JDK1.8及以后方法区的具体实现变为元空间,元空间使用的是本地内存,存储原创 2021-07-24 15:22:22 · 629 阅读 · 2 评论 -
java对象实例化,内存布局以及访问定位
创建对象的几种方式 1.new对象,相信大家最常用的就是这个 存在两种变形 1.类的静态方法,例如单例模式 2.builder以及factory方法 2.Class的newInstance():反射的方式,但是只能使用空参构造器,权限也必须是pubilc 3.Constructor的newInstance(XXX):依然是反射的方式,可以调用有参的构造器,权限没有限制 4.使用反序列化:从文件或者网络中获取对象的二进制流 5.clo原创 2021-07-24 16:03:11 · 87 阅读 · 0 评论