Sun JDK 1.6内存调优指南:GC优化实践
需积分: 10 14 浏览量
更新于2024-07-24
收藏 522KB PDF 举报
"Sun JDK 1.6内存管理的调优是针对Java应用程序性能优化的重要环节,由专家毕玄在2010年的分享中详细阐述。调优的目标包括掌握垃圾收集(GC)的基本策略和编写对GC友好的代码,以提高应用程序的吞吐量或响应时间。这一过程涉及测量、设定目标、调优等多个步骤,并需要考虑多种因素,如GC因素(内存足迹、分配速率、年轻代生存率、暂停时间和吞吐量)、应用因素(响应时间、每秒查询率QPS)以及系统因素(负载、CPU利用率和IO)。"
在调优过程中,测量工具如GC日志、jstat、jmap、sar、top等被用来监控和分析JVM的行为。其中,GC日志记录了GC事件,jstat用于实时监控JVM统计信息,jmap帮助获取堆内存详细信息,sar监测系统性能,而top则展示进程资源使用情况。
GC神话(GCMyth)是指一些关于GC的误解,毕玄在JavaOne 2010的演讲中对此进行了澄清。选择JVM版本时,32位JVM在Linux上可能受到3GB内存限制,一般建议堆大小不超过2GB;而64位JVM虽然指针占用更多内存,但在足够资源下,64位通常表现更好,开启-XX:+UseCompressedOOPS选项可以缓解这个问题。
调优目标可以是吞吐量或延迟。如果吞吐量更重要,可以选择Parallel Old GC;如果延迟更重要,通常先尝试Parallel Old GC,如果不满意再转向CMS(Concurrent Mark Sweep)收集器。堆的大小设定是个关键点,初始堆大小(-Xms)和最大堆大小(-Xmx)通常设置为存活数据大小的3到4倍。
降低Full GC(FGC)执行频率是优化的关键,可以通过增大老年代空间,减少新对象晋升到老年代,调整Tenuring Threshold和Survivor Space Size来实现。例如,在ItemDetail、TC和promotion center等应用场景中,这些策略已被证明有效。
减少FGC造成的暂停时间也是优化的一个方向,这可能需要减小堆大小,以降低GC的工作量,从而缩短暂停时间。同时,调整JVM参数,如新生代和老年代的比例,以及使用并发GC模式,也能帮助改善暂停时间。
Sun JDK 1.6内存管理调优是一个综合性的过程,涉及到对应用程序、JVM配置和系统资源的深入理解,以及灵活运用各种调优工具和策略。通过细致的分析和调整,可以显著提升Java应用的性能和稳定性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-11-29 上传
2013-01-05 上传
2019-03-01 上传
2014-08-30 上传
2012-01-16 上传
2023-10-27 上传
atmoy
- 粉丝: 0
- 资源: 4
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率