
JVM
文章平均质量分 63
不洇
新手小白,多多指教,共同分享,持续进步
展开
-
如何使用visual vm和jstat进行远程监控
然后过一会就可以看到下面的东西了。看不到的可以重启下visual vm。如果不行,应该是上面jstat链接哪里设置不对,比如ip或者port。好像从jdk某个版本开始,jdk的bin目录下就不自带jvisualvm了,需要从官网下载一个visual vm。然后在$JAVA_HOME/bin目录下面执行下面的命令。首先需要找到需要监控的服务,并在其启动命名中加入下面的参数,来支持远程JMX访问。通过jps -l可以看到我们的jstat进程起来了。此时就可以看到visual gc的数据了。原创 2024-05-10 18:14:03 · 553 阅读 · 0 评论 -
JVM层面来理解对象的创建中的相关内容
文章目录对象的创建普通对象的创建方式类创建过程的简单步骤内存分配方法指针碰撞空闲列表需要考虑的同步问题初始化值对象的内存布局对象头实例数据jvm 默认分配顺序对齐填充对象的访问定位对象的创建普通对象的创建方式在java中,常见的java对象的创建方式有通过new关键字(也是最常见的)通过复制通过反序列化创建对象类创建过程的简单步骤一个类创建的过程中,细分的话,应该分为以下三个步骤。当遇到new关键字的时候。java虚拟机先去判断该类是否经过加载、解析和初始化,如果没有则必须执行对应的类加原创 2020-09-25 16:16:32 · 142 阅读 · 0 评论 -
JVM垃圾回收算法、收集器、触发情况、查看GC情况、频繁Full gc
文章目录垃圾回收算法标记-清除算法(Mark-Sweep)复制算法(Copying)标记-整理算法(Mark-Compat)分代算法垃圾回收器新生代老年代如何确定一个垃圾是可以回收的计数引用法可达性分析GC触发情况Minor GCFull GCJVM命令查看某个java进程的GC情况频繁老年代回收怎么分析解决垃圾回收算法标记-清除算法(Mark-Sweep)如果你将内存想象成一个大方格,而这个大方格又由9*9个方块组成,我们存入的数据有小有大,有的可能要占用一个方格,有的数据可能需要占用两个方格甚至更原创 2020-09-08 21:20:47 · 747 阅读 · 0 评论 -
指令重排序与内存屏障
文章目录重排序的概念重排序类型编译器重排序数据依赖性控制依赖性指令级并行重排序内存系统重排序内存屏障Happans-Beforehappens-before规则重排序的概念重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段重排序类型编译器重排序编译器会对高级语言进行分析,当编译器认为你的代码是可以优化的时候,会对你的代码进行重新排序。为了遵守as-if-serial语义,编译器和处理器不会对存在数据依赖关系的操作做重排序,以此保证单线程内程序的执行结果不被改变。优点原创 2020-08-11 21:34:40 · 452 阅读 · 0 评论 -
JVM虚拟机内存结构变化
记录一下最近学习JVM虚拟机的收获文章目录jvm虚拟机的描述jdkjrejvm虚拟机的作用jvm虚拟机的实现JVM虚拟机内存模型变化jdk1.6时jdk1.7时jdk1.8时JVM虚拟机内存结构(jdk1.8)堆内存(head)虚拟机栈(VM stack)本地方法栈(Native stack)元空间(meta space)程序计数器(PC)编译执行和解释执行热点代码jvm虚拟机的描述jdk...原创 2020-04-19 17:08:53 · 215 阅读 · 0 评论 -
JVM内存结构中--虚拟机栈的结构
虚拟机栈的结构每一个线程调用的时候,都会生成一个专门的虚拟机栈来处理这个线程的方法调用链。栈帧栈内部是由一个个栈帧组成的。每一个栈帧是一个方法的数据结构。我们调用方法的时候就会执行入栈的操作,方法执行完后就会执行出栈的操作。而在栈中表示这些方法的名字就是栈帧。局部变量区也可以说是局部变量表。可以想象一下我们写的方法,方法的参数、内部定义的变量就是存在于这个区域的。操作数栈栈,同样也...原创 2020-04-19 17:07:31 · 295 阅读 · 0 评论 -
JVM虚拟机之堆内存的结构
文章目录堆内存的结构(1.8以前)新生代老年代字符串在1.6和1.7中间的变化堆内存的结构(1.8以前)看着图片来说一说我整理后理解的堆内存新生代新生代中分为三块区域,分别是Eden,Survivor From,Survivor To。Eden用来存放每次新new出来的对象。Survivor幸存区用来存放每次GC回收之后存活下来的对象。GC后,通常会将Eden中存活下来的对象存在S...原创 2020-04-19 17:00:15 · 432 阅读 · 0 评论