11 2020 档案
摘要:本文总结了排查内存溢出问题的MAT工具,先来看看本文目录: 给,你们想要的内存溢出 MAT 排查工具 Java 堆内存分析工具。 1@RestController 2public class MatController { 3 4 List list = new ArrayList<>(); 5 6
阅读全文
摘要:在工作中,当一个系统发生OOM的时候,这种问题可能会让大家很烦恼困惑,因为故障排查起来是一个综合技术的考量。在平时工作中要增加自己的知识广度,多学习,多总结,多思考,多做笔记,这才是真正的王道。 尤其是在线上环境中,如何分析是哪个线程导致的CPU飙高的问题,通常大致有几个差不多固定的步骤。这个问题也
阅读全文
摘要:有关JVM问题排查的可视化工具有很多,比如说JDK自带的jconsole、jvsualvm等,第三方有MAT、GChisto、GCView等。 小学妹问我:如何利用可视化工具排查问题? jconsole查看内存回收情况 jconsole工具在JDK的bin目录下。 小学妹问我:如何利用可视化工具排查
阅读全文
摘要:前面已经讲过了jps和jstat调优工具。今天我们继续说一下其它4个工具。这些工具都在jdk的bin目录下。 如何使用jinfo工具 jinfo显示虚拟机配置信息,我们通过jinfo --help能看到相应的参数: option说明 no option 输出全部的参数和系统属性 -flag name
阅读全文
摘要:内存溢出,通俗的理解,就是你要求分配的内存超出了JVM能给你的,JVM不能满足需求,于是产生溢出。 为了便于理解,本文我们将使用一个案例来说明内存溢出。 首先,还是先看看本文的主要框架: 查看JVM内存情况 1public class PrintGCDetailsDemo { 2 public st
阅读全文
摘要:前言 前面我们讲过Spring Boot集成JPA,但是由于很多小伙伴的项目中用的并不是JPA,用的是Mybatis,并且我也调查过很多朋友,三个ORM框架使用比例大致为 Mybatis:JPA:Hibernate:其他=6:3:0.5:0.5 不接受反驳,因为没有多大意义。 面试题:Mybatis
阅读全文
摘要:首先,还是一张思维导图,看看本文主要内容: 今天来熟悉一下,关于JVM调优常用的一些参数。 X或者XX开头的都是非转标准化参数 意思就是说准表化参数不会变,非标准化参数可能在每个JDK版本中有所变化,但是就目前来看X开头的非标准化的参数改变的也是非常少。 格式:-XX:[+-
阅读全文
摘要:在JVM中程序寄存器、Java虚拟机栈、本地方法栈,这三个区是随着线程的创建而创建,随着线程结束而销毁。 其实就是这三个地生命周期和线程的生命周期一样。都是每个线程私有的。 每次方法的调用就会向栈里入栈一个栈帧,方法调用结束,跟着就出栈。 对象也是有生命周期的,所以对于不需要的对象要进行必要
阅读全文
摘要:前面的文章中已经有所提到过堆,只是大致介绍了一下。本文就来详细聊聊JVM中的堆。 在 JVM中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。 新生代 ( Young ) 又被划分为三个区域:Eden区、From Survivor区、To Survivor区。 这样划
阅读全文
摘要:生活中的ThreadLocal 考试题只有一套,老师把考试题打印出多份,发给每位考生,然后考生各自写各自的试卷。考生之间不能相互交头接耳(会当做作弊)。各自写出来地答案不会影响他人的分数。 注意:考试题、考生、试卷。 用代码来实现: public class ThreadLocalDemo { //
阅读全文