From 5b726fe80b37c3e2b71fbddc337afb9c6dcfdcae Mon Sep 17 00:00:00 2001 From: huayu <674367665@qq.com> Date: Fri, 18 Feb 2022 14:36:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E5=AD=98=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flag.md | 8 ++ jvm/JVM内存模型JMM.md | 20 ----- jvm/JVM垃圾回收.md | 80 +++++++++++++++++- netty/img/architecture.png | Bin 0 -> 49776 bytes netty/netty注释.md | 21 +++++ spring/springboot/启动.md | 76 +++++++++++++++++ 从放弃到入门系列.md | 5 +- 新建 文本文档.md | 16 ++++ .../17图/img/邻接矩阵法.png | Bin 0 -> 666433 bytes .../17图/img/邻接表法.png | Bin 0 -> 621633 bytes 算法/算法和数据结构体系学习班/17图/图.md | 26 ++++++ .../18、认识一些经典的递归过程/一些经典的递归过程.md | 0 12 files changed, 230 insertions(+), 22 deletions(-) create mode 100644 flag.md create mode 100644 netty/img/architecture.png create mode 100644 spring/springboot/启动.md create mode 100644 新建 文本文档.md create mode 100644 算法/算法和数据结构体系学习班/17图/img/邻接矩阵法.png create mode 100644 算法/算法和数据结构体系学习班/17图/img/邻接表法.png create mode 100644 算法/算法和数据结构体系学习班/17图/图.md create mode 100644 算法/算法和数据结构体系学习班/18、认识一些经典的递归过程/一些经典的递归过程.md diff --git a/flag.md b/flag.md new file mode 100644 index 0000000..fb611ec --- /dev/null +++ b/flag.md @@ -0,0 +1,8 @@ +## 春节假期 +1. Netty聊天室 +2. redis +3. nginx +4. tomcat +4. jvm +4. 算法 + diff --git a/jvm/JVM内存模型JMM.md b/jvm/JVM内存模型JMM.md index 26bab54..c88664e 100644 --- a/jvm/JVM内存模型JMM.md +++ b/jvm/JVM内存模型JMM.md @@ -1,23 +1,3 @@ -大对象,新生代存储不下的对象,分配担保直接到老年代。 - -1. 年龄超过15 -2. 相同年龄超过50% -3. 动态年龄分配,不同年龄特别多。 -4. 内存担保,新生代垃圾回收无法完成,直接放入老年代。 **在GC前还会进行一次判断,如果要分配的内存>=Eden区大小的一半,那么会直接把要分配的内存放入老年代中。否则才会进入担保机制。** - -TLAB的全称是Thread Local Allocation Buffer,即线程本地分配缓存区,这是一个线程专用的内存分配区域。 - -java -XX:+PrintCommandLineFlags -version - -什么样的对象要被GC - -判断回收算法 - -- 引用计数法,相互引用,循环引用 -- 可达性分析,GCroot(本地变量表引用对象,用来关联对象关系、方法区中的静态变量和常量,虚拟机栈中本地变量表(局部变量),static成员,常量引用,本地方法栈中变量,类加载器,Thread)。 -- 不可达对象,finalize可以挽回一次防止回收。 -- 本地方法栈中JNI引用的对象 - ### 对象头内存分配 ![](img\对象头描述.png) diff --git a/jvm/JVM垃圾回收.md b/jvm/JVM垃圾回收.md index d0ce512..736d0fb 100644 --- a/jvm/JVM垃圾回收.md +++ b/jvm/JVM垃圾回收.md @@ -1,3 +1,51 @@ + + +## 参数描述 + +eden:s0:s1=8:1:1 + +https://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html + +- -Xms start 起始大小 +- -Xmx max 最大大小 +- -Xmn new 新生代大小 + +多线程分配对象会出现指针碰撞(内存规整,同时初始化对象) + +- CAS 耗时,无法使用 +- TLAB Thread Local Allaction Buffer,每个线程在栈上都有属于自己的一块单独的空间栈上分配。本地线程分配。逃逸分析,对象超出方法使用范围。栈上分配(快速),为逃逸对象在栈上分配 + +内存分配,空间列表 + +- Free List +- Bump the pointer + +### 进入老年代 + + + +大对象,新生代存储不下的对象,分配担保直接到老年代。 + +1. 年龄超过15 +2. 相同年龄超过50% +3. 动态年龄分配,不同年龄特别多。-XX:TargetSurvivorRatio 相同年龄所有对象的大小总和>Survivor空间的一半。 +4. 内存担保,新生代垃圾回收无法完成,直接放入老年代。 **在GC前还会进行一次判断,如果要分配的内存>=Eden区大小的一半,那么会直接把要分配的内存放入老年代中。否则才会进入担保机制。**-XX:+HandlePromotionFailure 检查老年代最大可用的连续空间是否大于历次晋升到老年代的平均大小。 + +TLAB的全称是Thread Local Allocation Buffer,即线程本地分配缓存区,这是一个线程专用的内存分配区域。 + +java -XX:+PrintCommandLineFlags -version + +什么样的对象要被GC + +判断回收算法 + +- 引用计数法,相互引用,循环引用 +- 可达性分析,GCroot(本地变量表引用对象,用来关联对象关系、方法区中的静态变量和常量,虚拟机栈中本地变量表(局部变量),static成员,常量引用,本地方法栈中变量,类加载器,Thread)。 +- 不可达对象,finalize可以挽回一次防止回收。 +- 本地方法栈中JNI引用的对象 + + + ## GC范围 GC管理的主要区域是Java堆,一般情况下只针对堆进行垃圾回收。方法区、栈和本地方法区不被GC所管理,因而选择这些区域内的对象的引用作为GC roots,被GC roots引用的对象不被GC回收。 @@ -6,4 +54,34 @@ GC管理的主要区域是Java堆,一般情况下只针对堆进行垃圾回 - 并行parallel:多个垃圾收集线程并行工作,此时用户线程处于等待状态。 - 并发concurrent:用户线程和垃圾收集线程同时执行。 -- 吞吐量:用户代码执行时间/(用户代码执行时间+垃圾收集时间) \ No newline at end of file +- 吞吐量:用户代码执行时间/(用户代码执行时间+垃圾收集时间) + +### 垃圾收集器算法 + +**标记—清除算法(Mark-Sweep)(DVM 使用的算法)** + +​ 标记—清除算法包括两个阶段:“标记”和“清除”。在标记阶段,确定所有要回收的对象,并做标记。清除阶段 + +​ 紧随标记阶段,将标记阶段确定不可用的对象清除。标记—清除算法是基础的收集算法,标记和清除阶段的效率不高, + +​ 而且清除后回产生大量的不连续空间,这样当程序需要分配大内存对象时,可能无法找到足够的连续空间。 + +**复制算法(Copying)** + +​ 复制算法是把内存分成大小相等的两块,每次使用其中一块,当垃圾回收的时候,把存活的对象复制到另一块上, + +​ 然后把这块内存整个清理掉。复制算法实现简单,运行效率高,但是由于每次只能使用其中的一半,造成内存的利用率 + +​ 不高。现在的 JVM 用复制方法收集新生代,由于新生代中大部分对象(98%)都是朝生夕死的,所以两块内存的比例 + +​ 不是 1:1(大概是 8:1:1)。 + +**标记—整理算法(Mark-Compact)** + +​ 标记—整理算法和标记—清除算法一样,但是标记—整理算法不是把存活对象复制到另一块内存,而是把存活对象往内存的一端移动,然后直接回收边界以外的内存。标记—整理算法提高了内存的利用率,并且它适合在收集对象 + +​ 存活时间较长的老年代。 + +**分代收集(Generational Collection)** + +​ 分代收集是根据对象的存活时间把内存分为新生代和老年代,根据各个代对象的存活特点,每个代采用不同的垃圾回收算法。新生代采用复制算法,老年代采用标记—整理算法。垃圾算法的实现涉及大量的程序细节,而且不同的虚拟机平台实现的方法也各不相同。 \ No newline at end of file diff --git a/netty/img/architecture.png b/netty/img/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b2c22e7e96b6d8e23057ab88039a9fa610231a GIT binary patch literal 49776 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