JVM 内存模型和垃圾回收(三): 并行回收器
来源:互联网 发布:sarah lynn 知乎 编辑:程序博客网 时间:2024/06/05 02:15
JVM 内存模型和垃圾回收(三): 并行回收器
并行回收器类似于串行回收器,最主要的区别是是否采用了多线程进行加快垃圾回收。
Young Generation
并行回收仍然是一个stop-the-world
的回收方式。但是在Young上进行并行回收,就会减少应用暂停的时间。Old Generation
这个和串行回收一样,使用的方式是mark-sweep-compact
. 首先将内存分为固定的区域。- 在marking阶段,初始化application code直接能获取的存活对象分配给各个线程,之后由各个线程去进行mark。如果一个object是存活的,这个区域的数据就会被更新,包括这个对象的大小和位置。
- 在summary阶段, 操作的是区域,而不是对象了。因为之前compact的方式,在前面的区域总是密集的,以至于把这些区域可用的内存空间提取出来相对来说作用并不会很大。所以在summary的第一件事就是验证区域的密集程度, 从左到右,直到遇到一个相对来说(storage/cost大于某个值)比较值得的区域,然后再从最左边到这里是不用移动和聚合的,本身到最后边进行聚合(聚合的是对象,不是区域)。summary阶段会计算每个compact区域聚合到一起的新的存活的位置。
并行回收的特点:
- 多cpu的环境
- 如果对线程数需要控制,那么需要限制
--XX:ParallelGCThreads=n
来选择一个单独的收集器
阅读全文
0 0
- JVM 内存模型和垃圾回收(三): 并行回收器
- JVM 内存模型和垃圾回收(二): 串行垃圾回收器
- Java(JVM)内存模型,垃圾回收
- JVM 内存模型和垃圾回收(五): Garbage-First
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收 .
- 深入理解JVM(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- 深入理解JVM(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- JVM(三)------内存管理和垃圾回收
- JVM学习笔记(三)------内存管理和垃圾回收
- oracle.jdbc.driver.OracleDriver 没加加载oracle驱动
- Kafka剖析:Kafka背景及架构介绍
- 字符串操作总结
- 数据保存位置
- Android中如何提取和生成mp4文件(MediaMUxer)
- JVM 内存模型和垃圾回收(三): 并行回收器
- mysql创建视图
- java实现批量生成文件夹和批量修改文件名
- java compiler level does not match解决方法
- mysql(一)
- UGUI
- vue
- 深入理解bootloader_1----- bootloader的初步概念
- 重建二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。