网站城市分站是怎么做的高中生沉迷哔哩哔哩怎么办
- 作者: 五速梦信息网
- 时间: 2026年04月20日 08:13
当前位置: 首页 > news >正文
网站城市分站是怎么做的,高中生沉迷哔哩哔哩怎么办,免费网站制作推广,重庆天蚕网络科技有限公司目录 垃圾收集器 串行垃圾收集器 并行垃圾收集器 什么是 吞吐量优先 什么是 响应时间优先 #xff1f; CMS#xff08;并发#xff09;垃圾收集器 G1 垃圾收集器 垃圾收集器 垃圾收集器大概可以分为#xff1a; 串行垃圾收集器并行垃圾收集器CMS#xff08;并发 CMS并发垃圾收集器 G1 垃圾收集器 垃圾收集器 垃圾收集器大概可以分为 串行垃圾收集器并行垃圾收集器CMS并发垃圾收集器G1垃圾收集器 串行垃圾收集器 Serial 和 Serial Old 是 串行垃圾收集器 使用单线程回收因此就适用于堆内存较小CPU数量少的因为多了也没用个人电脑 开启串行垃圾收集器的VM参数是-XX:UseSerialGC Serial SerialOld Serial 垃圾收集器工作在新生代采用 标记-复制 算法 SerialOld 垃圾收集器工作在老年代采用 标记-整理 算法 工作流程如下 从上图我们看到在串行垃圾收集器的回收过程中进程中的其他应用线程需要暂停也叫 Stop The World简称 STW 为什么需要STW 因为在垃圾回收的工程中有些对象的地址是会发生改变的如果垃圾回收的过程中用户线程还在工作那用户线程就有可能找不到对象 从而产生错误因此在垃圾回收器进行回收的过程中其他用户线程都要阻塞 并行垃圾收集器 并行垃圾收集器即 Parallel New 和 Parallel Old 并行垃圾收集器是 吞吐量优先 的垃圾收集器 什么是 吞吐量优先 什么是 响应时间优先 吞吐量优先 使用多线程回收适用于堆内存较大CPU较多的场景如果是CPU个数较少比如单核CPU会导致回收线程之间相互争抢CPU的时间片导致线程上下文切换的时间浪费效率反而会比串行的垃圾回收器低适合工作在服务器上 吞吐量优先的目标是在单位时间内让Stop The World以下简称STW的时间最短 响应时间优先 同样也是多线程回收同样适用于堆内存较大CPU较多的场景同样适合工作在服务器上 响应时间优先的目标是让单次的STW的时间最短 一个例子区分 吞吐量优先 和 响应时间优先 在一个单位时间内吞吐量优先追求 0.5 0.5 1吞吐量不在乎 0.5 很大只在乎 1 最小而响应时间优先追求 0.3 0.3 0.3 0.3 0.3 1.5 响应时间优先不在乎1.5很大只在乎 0.3 最小 开启并行的垃圾收集器的参数是-XX:UseParallelGC ~ -XX:UseParallelOldGC ParallelGC 垃圾收集器工作在新生代中采用 标记-复制 算法 ParallelOldGC 垃圾收集器工作在老年代中采用 标记-整理 算法 在 jdk 1.8 中默认使用的就是 ParallelGC而这两个开关是一同开启的也就是开启 ParallelGC会连同开启ParallelOldGC Parallel 就是并行的意思说明这些垃圾回收线程是并行执行的 工作流程如下 通过参数 -XX:ParallelGCThreadsn 可以设置垃圾回收线程的数量 除此之外还有三个比较重要的参数 -XX:UseAdaptiveSizePolicy 采用自适应的大小调整策略会动态的调整 Eden 和 Survivor 的比例还会调整堆的大小、老年代的晋升阈值等 -XX:GCTimeRatioratio 用于调整垃圾回收的时间在总工作时间中的占比计算公式为 1/(1ratio)如果达不到设置的时间占比ParallelGC就会尝试调大堆的大小因为堆的容量较大GC的次数就会比较少ratio的值默认为99但是 1⁄100 的占比时间很难达到因此我们正常将 ratio 设置为19 -XX:MaxGCPauseMillisms : 单次垃圾回收的最大时间默认值200ms于 -XX:GCTimeRatio 参数存在冲突因为 -XX:GCTimeRatio 可能为了达到目标而调大堆的大小而且堆越大单次垃圾回收的时间就越长 CMS并发垃圾收集器 CMS全称 Concurrent Mark Sweep是一款并发的、使用 标记-清除 算法的垃圾回收器 该回收器是针对老年代垃圾回收的是一款 响应时间优先 的收集器停顿时间短用户体验就好 其最大特点是在进行垃圾回收时应用仍然能正常运行 开启 CMS垃圾收集器 的参数-XX:UseConcMarkSweepGC ~ -XX:UseParNewGC ~ SerialOld ConcMarkSweepGC 可能会存在并发失败的问题如果出现并发失败那 ConcMarkSweepGC 就会退化成 SerialOldGC 工作流程如下 从上面我们可以看到只有 初始标记 和 重新标记 阶段需要STW而这两阶段的时间又非常短因此能达到更好的响应时间 在初始标记阶段只会标记出跟GC Roots直接相连的对象在并发标记时再去标记完整个引用链因为并发标记的过程中应用线程仍在运行所以可能产生出新的垃圾对象因此需要最后STW去重新标记一遍标记出新产生的垃圾对象 G1 垃圾收集器 G1Garbage First是 JDK 9 之后默认的垃圾收集器同时注重吞吐量和低延迟 适用于超大的堆内存其工作原理是将堆划分为多个大小相等的 Region 此时就没有了新生代和老年代的比例一说因为每个 Region 都可以单独作为 Eden、Survivor、老年代 G1采用 标记 - 复制 算法 如果在 JDK 1.8 中使用G1需要设置VM参数-XX:UseG1GC 工作流程如下 初始状态下会将几块 Region 划分为 Eden G1垃圾收集器中新生代的占比只有 5% - 6% 当Eden中的对象过多时就会进行垃圾回收 垃圾回收采用 标记 - 复制 算法将 Eden 中幸存的对象复制到 Survivor并清空Eden该过程需要STW但因为幸存的对象是比较少的所以STW的时间很短 接下来又产生多个新对象 再次进行新生代的垃圾回收Eden中和上一个Survivor中幸存的对象会被复制到新的Survivor中但上一个Survivor中幸存的对象如果年龄超过晋升阈值会直接进入老年代中 最后变成 当老年代占用的内存超过一定阈值默认45%后需进行老年代的垃圾回收该过程会先进行并发标记标记出老年代中存活的对象并发标记过程无需暂停应用线程并发标记结束后需再进行重新标记和CMS原理相同需标记处并发标记过程中新产生的垃圾对象这个过程需暂停应用线程但是时间很短 之后进入混合收集阶段此时不会对所有老年代区域进行回收而是根据暂停时间目标优先回收价值高存活对象少的区域这也是 Gabage First 名称的由来比如下图中标红的老年代 混合收集 就是连同 Eden 、Survivor 、老年代 进行一次垃圾回收Eden 、Survivor 的回收过程和上面相同老年代的回收是新开一个老年代将三个标红的老年代还有Survivor中年龄到达阈值的存活对象复制到新的老年代中 最后变成如下结果
- 上一篇: 网站成功案例分析南宁网站建设云尚网络
- 下一篇: 网站程序 wap pc 同步网站关键词如何优化
相关文章
-
网站成功案例分析南宁网站建设云尚网络
网站成功案例分析南宁网站建设云尚网络
- 技术栈
- 2026年04月20日
-
网站常州建设动易做网站
网站常州建设动易做网站
- 技术栈
- 2026年04月20日
-
网站常用图标素材课程资源网站开发 jsp
网站常用图标素材课程资源网站开发 jsp
- 技术栈
- 2026年04月20日
-
网站程序 wap pc 同步网站关键词如何优化
网站程序 wap pc 同步网站关键词如何优化
- 技术栈
- 2026年04月20日
-
网站程序 不能创建文件夹网站搭建阿里
网站程序 不能创建文件夹网站搭建阿里
- 技术栈
- 2026年04月20日
-
网站程序0daywordpress4.7发布模块
网站程序0daywordpress4.7发布模块
- 技术栈
- 2026年04月20日
