jvm
jvm
大龄码农生活
这个作者很懒,什么都没留下…
展开
-
jvm 学习总结------第二课 gc垃圾回收
一、如何判断对象为垃圾对象为了查看垃圾回收的信息 -verbose:gc -XX:+PrintGCDetails就可以看到gc信息1、引用计数法 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候,计数器的值就减-1. 在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那...原创 2019-06-26 17:50:28 · 169 阅读 · 0 评论 -
jvm 学习总结------第一课 jvm内存区域
目录一:运行时数据区域二:各个区域的作用三 jvm各个版本变化四深入辨析堆和栈 1、 栈: 2、 堆:堆的内存划分:五 HotSpot 虚拟机对象探秘1、对象的创建2、对象的内存布局3、对象的访问定位一:运行时数据区域 定义:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的...原创 2019-06-26 15:08:54 · 208 阅读 · 0 评论 -
JVM分析工具---Arthas(阿尔萨斯)
1. Arthas是什么Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系统,命令还支持使用 tab 键对各种信息的自动补全,诊断起来非常方便。这是它的官方网站:https://alibaba.github.io/arthas/...原创 2020-04-05 12:55:07 · 5174 阅读 · 2 评论 -
Java虚拟机 ----虚拟机常用参数
HotSpot参数分类标准: - 开头,所有的HotSpot都支持非标准:-X 开头,特定版本HotSpot支持特定命令不稳定:-XX 开头,下个版本可能取消1常见垃圾回收器组合参数设定参数 说明 -XX:+UseSerialGC Serial New (DefNew) + Serial Old -XX:+UseParNewGC ParNew ...原创 2020-04-01 20:51:29 · 320 阅读 · 0 评论 -
Java虚拟机 ----虚拟机常用工具
一、监控工作1. jpsjps主要用来输出JVM中运行的进程状态信息。语法格式如下:jps[options][hostid] 如果不指定hostid就默认为当前主机或服务器。 命令行参数选项说明如下:-q不输出类名、Jar名和传入main方法的参数-m输出传入main方法的参数-l输出main类或Jar的全限名-v输出传入JVM的参数2...原创 2020-03-31 21:06:22 · 394 阅读 · 0 评论 -
Java虚拟机 ----三色标记与G1垃圾回收器
一 、三色标记 提到并发标记,我们不得不了解并发标记的三色标记算法。它是描述追踪式回收器的一种有用的方法,利用它可以推演回收器的正确性。 首先,我们将对象分成三种类型的: 黑色:跟对象或者该对象与它的子对象都被扫描(标记完成)。 灰色:对象本身被标记完成,但是还没有扫描完该对象中的子对象 白色:未被扫描的对象。或者是扫描完成后,最终白色对象...原创 2020-03-30 21:56:54 · 1611 阅读 · 3 评论 -
Java虚拟机 ----CMS 垃圾回收器
一、CMS 详解 CMS(Concurrent Mark Sweep)回收器是在最短回收停顿时间为前提的回收器,属于多线程回收器,采用标记-清除算法。特点:基于标记-清除算法实现。并发收集、低停顿。应用场景:适用于注重服务的响应速度,希望系统停顿时间最短,给用户带来更好的体验等场景下。如web程序、b/s服务。相比之前的回收器,CMS回收器的运作过程比较复杂,分为四步:...原创 2020-03-30 16:59:37 · 1218 阅读 · 0 评论 -
Java虚拟机 ----垃圾回收算法与垃圾回收器
Java语⾔言中⼀个显著的特点就是引⼊入了了垃圾回收机制,使c++程序员最头疼的内存管理理的问题迎刃⽽而解。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露露,有效的使用空闲的内存。一、判断对象是否存活 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是...原创 2020-03-30 15:37:19 · 220 阅读 · 0 评论 -
Java虚拟机 ----运行时数据区与对象创建分配
一、运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图下图所示。 其中线程共享为...原创 2020-03-22 22:21:12 · 190 阅读 · 0 评论