JVM垃圾回收的算法很多,但是不管是哪种算法,在进行GC时大致的流程都是差不多的,主要有以下3个过程: ###1. 枚举根节点 这个过程主要是找到所有的GC Roots对象,这些对象一般发生在JVM虚拟机栈栈帧、常量池中的静态对象、方法区中静态类属性引用、本地方法栈中引用的对象。这个过程会发生STW ...
分类:
其他好文 时间:
2020-07-12 13:56:39
阅读次数:
63
https://git-scm.com/docs/git-gc NAME git-gc - Cleanup unnecessary files and optimize the local repository SYNOPSIS git gc [--aggressive] [--auto] [--q ...
分类:
其他好文 时间:
2020-07-11 18:56:34
阅读次数:
167
Hi everyone! My name is Yuwei, and I'm a senior major in computer science. I enjoy meditation and jogging, and I feel like my soul is in a state of pe ...
分类:
其他好文 时间:
2020-07-11 10:08:34
阅读次数:
97
Hotspot算法细节实现 我们以可达性分析算法中,从GC Roots集合找引用链这个操作作为介绍虚拟机高效实现的第一个例子。 固定可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,但查找过程并非易事,光是方法区的大小就常有数百上千兆,里 ...
分类:
其他好文 时间:
2020-07-11 09:43:01
阅读次数:
52
二、jvm内存泄漏 1.堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证GC Roots到对象之间有可达路径来避免垃圾收集回收机制清除这些对象,当这些对象所占空间超过最大堆容量时,就会产生OutOfMemoryError的异常。 新产生的对象最初分配在新生代,新生代满后会进行一次Min ...
分类:
其他好文 时间:
2020-07-10 18:35:00
阅读次数:
68
01JVM内存结构Java虚拟机的内存空间分为5个部分:?程序计数器?Java虚拟机栈?本地方法栈?堆?方法区JDK1.8同JDK1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。1.1程序计数器(PC寄存器)(1)程序计数器的定义程序计数器是一块较小的内存空间
分类:
其他好文 时间:
2020-07-10 09:58:56
阅读次数:
77
关于JVM,也许你听过这些术语:年轻代(新生代)、老年代、永久代、minor gc(young gc)、major gc、full gc 不要急,先上图,这是jvm 堆内存结构图 仔细的你发现了 图中有些分数8/10和1/10,这是默认配置下各个代内存分配比例。 举个栗子: 假如总heap max分 ...
分类:
其他好文 时间:
2020-07-09 12:00:19
阅读次数:
197
最大并发200,100的并发递增施压,到达200后持续360秒1:this group will start:表示总共要生成的最大线程数,如图:设置为:200 个,表示总共会加载到 200个线程2:first,wait for:第一个线程从点击执行之后多长时间开始加载,如图:设置为 0 秒,表示点击 ...
分类:
编程语言 时间:
2020-07-09 10:47:44
阅读次数:
137
1、官网下载redis-5.0.5.tar.gz压缩包 2、安装gcc和gc-c++ yum install gcc yum install gc-c++ 3、将redis-5.0.5.tar.gz上传到/opt文件夹下 4、运行 tar -zxvf redis-5.0.5.tar.gz 进行解压 ...
分类:
系统相关 时间:
2020-07-08 22:49:37
阅读次数:
79
垃圾回收与内存分配 垃圾回收与内存分配 一些基础 垃圾回收算法 垃圾回收器 常见问题 一些基础 对象的四种引用类型 强引用,内存不足时报错oom,但不会该类对象 弱引用,当内存不足时才会回收 软引用,不管内存是否充足,在gc都会回收 虚引用,任何时候都可以被回收 怎么判断对象是否仍在使用? 引用计数 ...
分类:
其他好文 时间:
2020-07-08 01:34:17
阅读次数:
81