Sun JDK 1.6内存调优实战与技巧-毕玄
需积分: 10 14 浏览量
更新于2024-07-23
收藏 522KB PDF 举报
"这篇文章是关于Sun JDK 1.6版本的内存管理与调优的专题,由专家毕玄分享。内容涵盖了GC(垃圾收集)调优的基础知识、编写对GC友好的代码方法、调优步骤以及相关工具的使用。文章强调了测量、设定目标和调优的重要性,并探讨了不同场景下选择32位或64位JVM的影响,以及如何根据性能需求选择合适的垃圾收集器。此外,还介绍了减少Full GC (FGC)执行频率和缩短其导致的暂停时间的策略。"
在Java内存管理中,垃圾收集(GC)是一项关键任务,它自动处理不再使用的对象,释放内存。Sun JDK 1.6提供了多种GC算法,如Parallel Old GC和Concurrent Mark Sweep (CMS)。调优的目标可以是提高吞吐量(Throughput)或降低延迟(Latency),这取决于应用的需求。
调优过程通常包括以下步骤:
1. **测量(Measure)**:通过分析GC日志、使用`jstat`、`jmap`等工具来了解系统的当前状态,如内存占用、分配速率、垃圾收集暂停时间和吞吐量等。
2. **设定目标(Set Goal)**:明确优化目标,是提高整体运行速度还是减少响应时间。
3. **调优(Tuning)**:基于测量结果调整JVM参数,如设置合适的堆大小(`-Xms`, `-Xmx`),优化对象晋升策略等。
对于JVM的选择,32位JVM在Linux上受限于3GB的地址空间,建议堆大小不超过2GB;而64位JVM虽然占用更多内存,但若硬件条件允许,通常能提供更好的性能,开启`-XX:+UseCompressedOOPS`可以减少指针开销。
垃圾收集器的选择依据目标不同而变化:
- **追求吞吐量**:通常采用Parallel Old GC,它能在大部分时间内保持较高的运行速度。
- **重视低延迟**:首先尝试Parallel Old GC,如果不满足要求,可以转向CMS,CMS更专注于减少暂停时间。
为了降低FGC的频率,可以:
- **增大Old区大小**:防止新生代对象过早晋升到老年代。
- **调整Tenuring Threshold和Survivor Space Size**:控制对象晋升策略,减少不必要的晋升。
同时,减小FGC暂停时间的策略可能包括减小堆大小,以减少每次GC需要扫描的对象数量。此外,优化系统性能,例如减少不必要的对象创建,也可以帮助降低GC压力。
案例展示部分可能详细讨论了某些特定应用场景(如ItemDetail和TC服务、促销中心)中如何运用上述原则和策略进行内存管理优化,以实现更高效、更稳定的系统运行。
2013-01-05 上传
2013-10-21 上传
2023-10-22 上传
2023-10-12 上传
2023-06-24 上传
2023-07-01 上传
2023-12-29 上传
2023-10-14 上传
2023-12-27 上传
lin23871
- 粉丝: 9
- 资源: 86
最新资源
- 新型智能电加热器:触摸感应与自动温控技术
- 社区物流信息管理系统的毕业设计实现
- VB门诊管理系统设计与实现(附论文与源代码)
- 剪叉式高空作业平台稳定性研究与创新设计
- DAMA CDGA考试必备:真题模拟及章节重点解析
- TaskExplorer:全新升级的系统监控与任务管理工具
- 新型碎纸机进纸间隙调整技术解析
- 有腿移动机器人动作教学与技术存储介质的研究
- 基于遗传算法优化的RBF神经网络分析工具
- Visual Basic入门教程完整版PDF下载
- 海洋岸滩保洁与垃圾清运服务招标文件公示
- 触摸屏测量仪器与粘度测定方法
- PSO多目标优化问题求解代码详解
- 有机硅组合物及差异剥离纸或膜技术分析
- Win10快速关机技巧:去除关机阻止功能
- 创新打印机设计:速释打印头与压纸辊安装拆卸便捷性