![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM & GC
愿你慢慢变强
愿你有好运气,如果没有,愿你在不幸中学会慈悲。
愿你被很多人爱,如果没用,愿你在寂寞中学会宽容。
展开
-
假如生产环境出现CPU占用过高,谈谈分析思路和定位
???? 结合 Linux 和 JDK 命令一块分析???? 案例步骤????1、先用 top 命令找出CPU占比最高的????2、ps -ef 或者 jps 进一步定位,得知是一个怎么样的一个后台程序给我们惹事????3、定位到具体线程或者代码⏳ ps -mp 进程 -o THREAD,tid,time⏳ 参数解释-m 显示所有的线程-p pid 进程使用cpu的时间-o 该参数后是用户自定义格式...原创 2020-03-09 14:11:55 · 294 阅读 · 0 评论 -
生产环境服务器变慢,谈谈诊断思路和性能评估
???? 整机:top???? uptime,系统性能命令的精简版???? CPU:vmstat???? 查看 CPU(包含不限于)vmstat -n 2 3一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数单位是秒,第二个参数是采样的次数procsr:运行和等待CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代...原创 2020-03-09 09:34:22 · 435 阅读 · 0 评论 -
G1 垃圾收集器------你了解多少
???? 以前收集器特点???? G1 是什么???? 底层原理????原创 2020-03-07 21:45:34 · 692 阅读 · 0 评论 -
怎么查看服务器默认的垃圾收集器是哪个?生产上如何配置垃圾收集器的?谈谈对垃圾收集器的理解?
???? 怎么查看默认的垃圾收集器是哪个?JVM 参数:java -XX:+PrintCommandLineFlags -version下图红色就是默认垃圾收集器???? 默认的垃圾收集器有哪些?java 的 gc 回收的类型主要有几种:UseSerialGC,UseParallelGC,UseConcMarkSweepGC,UseParNewGC,UseParallelOldGC,UseG1GC...原创 2020-03-06 14:25:54 · 556 阅读 · 0 评论 -
GC 垃圾回收算法和垃圾收集器的关系?-----你应该了解的
???? GC 算法(引用计数 / 复制 / 标清 / 标整)是内存回收的方法论,垃圾收集器就是算法落地实现。???? 因为目前为止还没有完美的收集器出现,更加没有万能的收集器,只是针对具体应用最合适的收集器,进行分代收集???? 四种主要垃圾收集器???? 串行垃圾回收器(Serial)它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程。所以不适合服务器环境???? 并行垃圾回收器(Parall...原创 2020-03-06 14:25:32 · 230 阅读 · 0 评论 -
谈谈对 OOM 的认识
???? java.lang.StackOverflowErrorpackage com.brian.interview.study.jvm.oom;/** * Copyright (c) 2020 ZJU All Rights Reserved * <p> * Project: JavaSomeDemo * Package: com.brian.interview.study...原创 2020-03-05 10:50:04 · 770 阅读 · 0 评论 -
强引用、软引用、弱引用、虚引用分别是什么?------你应该了解的
???? 整体架构???? 强引用(默认支持模式)当内存不足,JVM 开始垃圾回收,对于强引用的对象,就算是出现了 OOM 也不会对该对象进行回收,死都不收。强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还 “活着”,垃圾收集器不会碰到这种对象。在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可...原创 2020-03-05 10:49:08 · 468 阅读 · 0 评论 -
JVM 常用基本配置参数有哪些
????基础知识long totalMemory = Runtime.getRuntime().totalMemory(); // 返回 Java 虚拟机中的内存总量long maxMemory = Runtime.getRuntime().maxMemory(); // 返回 Java 虚拟机视图使用的最大内存量System.out.println("TOTAL_MEMORY(-Xms) ...原创 2020-03-04 09:37:34 · 196 阅读 · 0 评论 -
JVM 调优和参数配置,如何盘点查看 JVM 系统默认值
????JVM 的参数类型????标配参数-version-helpjava -showversion在 jdk 各个版本之间稳定,很少有大的变化???? x 参数(了解)-Xint: 解释执行-Xcomp: 第一次使用就编译成本地代码-Xmixed: 混合模式???? xx 参数⏳ Boolean 类型公式:-XX:+ 或者 - 某个属性值(+表示开启 -表示关闭)Case:是否...原创 2020-03-04 09:26:34 · 428 阅读 · 0 评论 -
JVM 垃圾回收的时候如何确定垃圾?谈谈什么是 GC Roots
????什么是垃圾简单的说就是内存中已经不再被使用到的空间就是垃圾????要进行垃圾回收,如何判断一个对象是否可以被回收?????引用计数法Java中,引用和对象是有关联的。如果要操作对象则必须要引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,给对象中添加一个引用计数器,每当有一个地方引用它,计数器值加1,每当有一个引用失效时,计数器值减1。任何时刻计数器值为零...原创 2020-03-03 14:00:32 · 263 阅读 · 0 评论 -
JVM 和 GC 的基础知识
JVM 内存结构JVM 体系概述Java8 以后的 JVMGC 的作用域常见的垃圾回收算法引用计数复制Java 堆从 GC 的角度还可以细化为:新生代(Eden区、From Survivor区和To Survivor区)和老年代。MinorGC 的过程(复制 -> 清空 -> 互换)1:eden、SurvivorFrom 复制到 SurvivorTo,年龄...原创 2020-03-03 09:42:17 · 408 阅读 · 0 评论