
SunJDK1.5 GC优化:组合使用与内存管理策略
下载需积分: 10 | 1.03MB |
更新于2024-08-18
| 198 浏览量 | 举报
收藏
"GC—组合使用-sun_GC回收机制及内存等优化"
Java垃圾收集(GC)是自动内存管理的一部分,旨在识别并回收不再使用的对象,以防止内存泄漏并优化性能。在Java Hotspot虚拟机中,有多种垃圾收集器可供选择,每种都有其特定的优缺点和适用场景。
1. **新生代GC方式**:
- **-XX:+UseSerialGC**:这是最简单的垃圾收集器,执行新生代的垃圾回收时,整个过程是串行的,适合轻负载应用。
- **-XX:+UseParNewGC**:与串行GC类似,但在新生代使用多线程进行垃圾回收,提高了并行性,适用于多CPU环境。
2. **旧生代和持久代GC方式**:
- **-XX:+UseParallelGC**(PS GC):这是并行GC的一种,用于旧生代,使用多线程进行垃圾回收,提高效率。
- **-XX:+UseParallelOldGC**:扩展了并行GC,用于整个老年代,包括压缩整理。
- **-XX:+UseConcMarkSweepGC**:并发标记清除GC,主要针对老年代,尽可能减少停顿时间。
3. **GC策略组合**:
- 当发生`Concurrent Mode Failure`时,会切换到串行GC。
- 当发生`Promotion Failed`时,也会采用串行GC。
- 不支持的组合包括:-XX:+UseParNewGC与-XX:+UseParallelOldGC,以及-XX:+UseParNewGC与-XX:+UseSerialGC。
4. **内存结构**:
- **JVM堆**:分为年轻代(包括Eden和两个Survivor区)、老年代,根据不同的GC策略进行管理。
- **JVM方法区/永久代(-XX:PermSize, -XX:MaxPermSize)**:存储类信息、常量、静态变量等,JDK 8后被元空间(Metaspace)取代。
- **本地方法栈/线程栈**:每个线程有自己的栈,用于存储方法调用信息,包括局部变量、操作数栈和栈帧。
- **JVM方法栈**:存放Java方法的调用信息。
- **PC寄存器**:记录当前线程的下一条指令地址。
5. **内存分配**:
- **堆上分配**:大部分对象在Eden区分配,少数直接分配在老年代,使用TLAB(Thread Local Allocation Buffer)优化分配速度。
- **栈上分配**:基本类型和通过逃逸分析后不涉及其他线程的局部变量。
- **堆外分配**:例如通过DirectByteBuffer或Unsafe类,但不推荐,因为管理复杂且可能导致内存碎片。
6. **垃圾回收的判断标准**:
- Hotspot使用可达性分析,对象如果不可达则视为垃圾。
- 引用类型包括Strong、Soft、Weak、Phantom,它们在Full GC时有不同的处理策略。
7. **内存优化**:
- 对于98%的临时对象,Sun Hotspot使用分代收集,新生代快速回收,老年代采用更复杂的策略,如标记-清除或标记-压缩。
理解这些GC机制及其组合对于优化Java应用的性能至关重要,尤其是在高并发场景下,正确配置GC策略可以避免OutOfMemoryError并提升系统响应速度。通过监控和调整JVM参数,如-Xms, -Xmx, -XX:PermSize, -XX:MaxPermSize等,可以有效地管理和优化内存使用。
相关推荐









花香九月
- 粉丝: 35
最新资源
- Nature杂志2007年6月28日电子版内容概览
- C#实现八皇后问题及其图形化展示
- JFreeChart最新版本发布,助力销售图表制作
- 微机并口实现多路TTL脉冲信号测量软件
- 网音V1.0: 开源网络收音电视机软件发布
- richtextbox文字自动滚动效果实现示例
- VC开发个人资料管理系统源码解析
- C#软件升级模块调用实战:源代码剖析
- VC图像处理实战教程与源代码分析
- Viewdll工具:轻松查看DLL与其他PE文件
- Java编程深度解析:海量实例教程
- 北京软件公司面试及笔试题精选
- 实现ASP.NET AJAX三级联动功能及代码解析
- 利用DWR框架优化图形动态显示的性能
- C#实现 ACCESS 数据库CRUD操作教程
- Java开发者转型必读:C++入门文档精选
- ZLG easyARM2100开发平台源程序解析
- 汇编语言实现判断闰年的程序设计教程
- GDAL 1.5.2库文件编译包:C++ GIS开发必备
- OEM计算机硬件检测工具:温度监控与版本多样性介绍
- 简易学生管理系统源码解构与页面交互分析
- C#开发的超市收银系统课设项目介绍
- 全面掌握JavaScript: 中文版语言参考手册
- 无需安装的Word文档转换工具,支持HTM、JPG、PDF格式