
目录 一. 背景 二. 内存泄露及原因 三. 常见堆内内存泄露的原因 四. 避免内存泄露的一些事项 五. 常见发生OOM的日志 六. 定位&解决堆内内存泄露引起的OOM 七....
堆内存划分为Eden、Survivor 和 Tenured/Old 空间,如下图所示: 从年轻代空间(包括Eden和 Survivor 区域)回收内存被称为 Minor GC...
系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路 1. Full GC次数过多 2. CPU过高 3. 不定期出现的接口耗时现象 4. 某个线程进入W...
今日在测试volatile与synchronized特性的时候遇到的一个坑: 先上示例代码: 图1和图2代码本质上的区别是 新线程的i=i+1操作下多了printl...
内存屏障需要解决我们前面提到的两个问题,一个是编译器的优化乱序和CPU的执行乱序,我们可以分别使用优化屏障和内存屏障这两个机制来解决 从CPU层面来了解一下什么是内存屏障 C...
移步java多线程系列文章重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段。 1 数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操...
JVM类加载器ClassLoader JAVA类装载方式 1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中。 2.显...
所谓类加载机制,就是虚拟机把描述类的数据从Class文件加载到内存中,并对其进行校验,转换,分析以及初始化,并最终形成虚拟机可以被使用java类型的过程。 Java作为解释型...
JVM类加载器 JVM类加载器:在类加载阶段中实现“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作的代码模块。 对于任意一个类,都需要由加载它的类加载器和这个类本...
JVM类加载器 @(Java)[JVM|类加载器] 类加载过程中的加载阶段在JVM的外部实现。这样做可以让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块就是类加...
JVM类加载机制 概述 类加载过程 加载 通过类的全限定名获取类的二进制流 将静态存储结构转化为方法区的运行时数据结构 在堆中生成代表这个类的Class对象,作为访问入口需要...
目录一.什么是Spark?1.什么是Spark?2.为什么要使用Spark?3.Spark的特点:快、易用、通用、兼容性二.Spark的体系结构与安装部署1.Spark集群的...
原文:https://tech.meituan.com/spark-tuning-basic.html Spark性能优化指南——基础篇 前言 在大数据计算领域,Spark已...
原文:https://tech.meituan.com/spark-tuning-pro.html Spark性能优化指南——高级篇 前言 继基础篇讲解了每个Spark开发人...