6、JVM 虚拟机

简介: JVM堆内存布局因垃圾回收器而异:传统GC将堆分为老年代和年轻代(Eden、S0、S1),G1则划分为多个Region,可动态充当Eden、Survivor、老年代或巨型对象区。常用垃圾回收算法有标记-清除(快但碎片化)、标记-整理(无碎片,较慢)和标记-复制(无碎片,适合存活对象少的场景)。

6.1 JVM 堆内存结构
堆内存的布局与垃圾回收器有关.
传统的垃圾回收器会把堆内存划分为:老年代和年轻代,年轻代又分为
。伊甸园 Eden
·幸存区 S0,S1
如果是 G1 垃圾回收器,会把内存划分为一个个的 Region,每个 Region 都可以充当
伊甸园
幸存区
老年代
巨型对象区

6.2 垃圾回收算法
记忆三种:
1.标记-清除算法。优点是回收速度快,但会产生内存碎片
2.标记-整理算法。相对清除算法,不会有内存碎片,当然速度会慢一些
3.标记-复制算法。将内存划分为大小相等的两个区域 S0 和 S1
a.S0 的职责用来存储对象,S1 始终保持空闲
b.垃圾回收时,只需要扫描 S0 的存活对象,把它们复制到 S1 区域,然后把 S0 整个清空,最后二者互换
职责即可
c.不会有内存碎片,特别适合存活对象很少时(因为此时复制工作少)

相关文章
|
算法 C++
OpenCV-白平衡(完美反射算法)
OpenCV-白平衡(完美反射算法)
809 0
|
1天前
|
Java Spring 容器
Spring Bean的作用域如何设置,常见的取值有哪些?
Spring Bean作用域可通过@Scope注解设置,常见有singleton(默认,单例)、prototype(每次创建新实例)、request(每请求一个实例)、session(每会话一个实例)。singleton在容器启动时初始化,可加@Lazy延迟;prototype则每次使用时创建。多数场景使用默认单例模式。
|
Kubernetes 应用服务中间件 nginx
k8s ingress不生效的bug 解决了。
k8s ingress不生效的bug 解决了。
652 0
|
8月前
|
机器学习/深度学习 人工智能 物联网
开源8B参数全能扩散模型Flex.2-preview:把线稿变商稿,还能边画边改!
Flex.2-preview是Ostris开源的80亿参数文本到图像扩散模型,支持512token长文本输入和多类型控制引导,内置修复功能并兼容主流AI绘画工具链。
460 3
开源8B参数全能扩散模型Flex.2-preview:把线稿变商稿,还能边画边改!
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
430 26
|
11月前
|
人工智能 搜索推荐 定位技术
AddressCLIP:一张照片就能准确定位!中科院联合阿里云推出街道级图像地理定位模型
AddressCLIP 是由中科院和阿里云联合开发的端到端图像地理定位模型,通过图像-文本对齐和地理匹配技术,实现街道级精度的定位,适用于城市管理、社交媒体、旅游导航等场景。
1646 30
AddressCLIP:一张照片就能准确定位!中科院联合阿里云推出街道级图像地理定位模型
|
JavaScript 前端开发 数据库
测试开发之路--Flask 之旅 (三):数据库
本文介绍了在 Flask 应用中实现权限管理的过程,包括使用 Flask-SQLAlchemy、Flask-MySQLdb、Flask-Security 和 Flask-Login 等扩展模块进行数据库配置与用户权限设置。首先创建数据库并定义用户、环境和角色模型,接着通过 Flask-Security 初始化用户和角色,并展示了如何便捷地管理权限。后续将深入探讨权限控制的具体应用。
281 4
测试开发之路--Flask 之旅 (三):数据库
|
搜索推荐 数据挖掘 大数据
数据具有无限性、易复制性、非均质性、易腐性和原始性五大特征
数据具有无限性、易复制性、非均质性、易腐性和原始性五大特征
959 1
|
Linux 知识图谱
Centos7安装killall,fuser, killall,pstree和pstree.x11
通过上述步骤,您已在CentOS 7系统中成功部署了killall、fuser、pstree以及pstree.x11,为高效管理系统进程打下了坚实基础。更多关于服务器管理与优化的知识,获取全面技术支持与解决方案。
531 1
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
251 2