JVM5.0中的Garbage Collection调优指南
需积分: 7 101 浏览量
更新于2024-07-31
收藏 668KB PDF 举报
"本文档详细介绍了在JVM5.0中如何进行Garbage Collection的配置,包括了对Ergonomics、Generations、不同类型的Collector的深入探讨,并提供了相关的性能考虑、测量方法以及调整建议。"
在Java虚拟机(JVM)中,垃圾收集(Garbage Collection, GC)是自动管理内存的过程,它负责识别并释放不再使用的对象以避免内存泄漏。JVM5.0引入了更加精细化的GC调优策略。
1. **Ergonomics(工效学)**
JVM5.0引入了工效学概念,这是一种自动调整内存管理和GC参数的方法。它基于应用的行为和系统资源来动态优化GC设置,旨在提高性能并减少管理负担。
2. **Generations(辈分)**
垃圾收集器通常按照对象的生命周期将内存划分为不同的代,如年轻代(Young Generation)、老年代(Old Generation)和永久代(Permanent Generation)。年轻代包含新创建的对象,而老年代存储长期存活的对象。性能考虑和测量主要针对这些代的大小和回收策略。
- **性能考虑**:年轻代的大小直接影响到对象晋升到老年代的速度,过小可能导致频繁的垃圾收集。
- **测量**:通过监控GC日志和工具(如VisualVM或JConsole)可以分析各代的使用情况,以便优化配置。
3. **调整各Generation的容量**
- **Heap总量**:总堆大小直接影响各代的分配。合理设定堆大小可以避免频繁的GC和Out-of-Memory错误。
- **Young Generation**:年轻代通常分为Eden区和两个Survivor区。Young Generation的Guarantee是确保每次Minor GC后都有足够的空间容纳新生对象。
4. **Collector的类型**
JVM5.0提供了两种主要的GC策略:
- **Throughput Collector**:追求高吞吐量,适合CPU密集型应用。它倾向于进行长时间的GC以减少总体暂停时间。
- **Concurrent Low Pause Collector (CMS)**:目标是降低暂停时间,适合交互式应用。CMS在大部分GC过程中与应用程序并发执行,但在某些阶段需要暂停应用。
- **Throughput Collector** 的特点包括对各代的容量调整,以及如何处理Out-of-Memory异常和性能测量。
- **CMS Collector** 关注并发开销、Young Generation的保证、全GC(Full Collections)、浮动垃圾、中断、并发阶段的调度以及增量模式的使用和故障排除。
5. **其他方面的考量**
调整GC不仅限于选择合适的Collector和设置大小,还需要考虑应用的特性(如对象的生存期、内存访问模式等),并结合实际运行环境进行微调。监控和日志分析是优化过程中的关键步骤。
6. **结束语**
优化JVM5.0的Garbage Collection是一项复杂但重要的任务,需要理解GC的工作原理、应用需求以及系统的整体性能表现。通过细致的配置和持续的监控,可以实现更高效、稳定的内存管理。
以上内容只是对JVM5.0中GC调优的概述,实际操作中可能需要更深入的了解和实践。对于每个特定的应用场景,都需要根据其特定需求进行定制化的调整。
2019-01-22 上传
114 浏览量
299 浏览量
219 浏览量
111 浏览量
129 浏览量
486 浏览量
102 浏览量
ltomuno
- 粉丝: 0
- 资源: 16
最新资源
- Spring与iBATIS的集成
- ARM体系结构与应用系统设计示例
- SIMOTION 快速入门-西门子
- 计算机编程语言-IDL编程技术
- FREESCALE HCS12xs系列单片机资料
- 三种虚拟化解决方案的比较
- 用链表与文件实现一个简单的学生成绩管理
- IEC61850 8-1 特定通信服务映射
- struts2配置文件
- 2410中文datasheet
- oracle数据库的优化
- Understanding The Linux Kernel 3rd edition
- 深入浅出系列之二_SubVersion
- 走进Linux图形环境
- tomcat performance tuning 性能调整
- mapgis 学习讲义