转载:http://www.cnblogs.com/cx361/archive/2011/12/15/2288315.html
堆大小设置
JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。
32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在WindowsServer2003系统,3.5G物理内存,JDK5.0下
测试,最大可设置为1478m。
典型JVM参数配置:
java-Xmx3550m-Xms3550m-Xmn2g-Xss128k
-Xmx3550m:设置JVM最大可用内存为3550M。
-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小+年老代大小+持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大
小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000
左右。
- java-Xmx3550m-Xms3550m-Xss128k
- -XX:NewRatio=4-XX:SurvivorRatio=4
- -XX:MaxPermSize=16m-XX:MaxTenuringThreshold=0
-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5
-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6
-XX:MaxPermSize=16m:设置持久代大小为16m。
-XX:MaxTenuringThreshold=0:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年
老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代
的存活时间,增加在年轻代即被回收的概论。
回收器选择
JVM给了三种选择:串行收集器、并行收集器、并发收集器,但是串行收集器只适用于小数据量的情况,所以这里的选择主要针对并行收集器和并发收集
器。默认情况下,JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行
判断。
吞吐量优先的并行收集器
如上文所述,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术和后台处理等。
典型JVM参数配置:
- java-Xmx3800m-Xms3800m-Xmn2g-Xss128k
- -XX:+UseParallelGC-XX:ParallelGCThreads=20
-
-XX:+UseParallelGC:选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集。
-XX:ParallelGCThreads=20:配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。
java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:ParallelGCThreads=20-XX:+UseParallelOldGC
-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集。
java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:MaxGCPauseMillis=100
-XX:MaxGCPauseMillis=100:设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。
java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:MaxGCPauseMillis=100-XX:+UseAdaptiveSizePolicy
-XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开。
响应时间优先的并发收集器
如上文所述,并发收集器主要是保证系统的响应时间,减少垃圾收集时的停顿时间。适用于应用服务器、电信领域等。
典型JVM参数配置:
- java-Xmx3550m-Xms3550m-Xmn2g-Xss128k
- -XX:ParallelGCThreads=20
- -XX:+UseConcMarkSweepGC-XX:+UseParNewGC
-
-XX:+UseConcMarkSweepGC:设置年老代为并发收集。测试中配置这个以后,-XX:NewRatio=4的配置失效了,原因不明。所以,此时年轻代大小最好用-Xmn设置。
-XX:+UseParNewGC:设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值。
java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=5-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction:由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。
-XX:+UseCMSCompactAtFullCollection:打开对年老代的压缩。可能会影响性能,但是可以消除碎片
分享到:
相关推荐
- **性能调优**:JVM参数配置、监控工具使用。 #### 三、实战技巧篇 1. **类加载过程分析** - 了解类加载的三个阶段:加载、验证、准备。 - 探讨双亲委派模型的工作原理及其优缺点。 - 实现自定义类加载器的...
5. 性能调优:通过JVM参数设置,我们可以调整堆大小、新生代与老年代的比例、垃圾收集器类型等,以适应不同的应用需求。理解这些参数的含义和作用是提高系统性能的重要手段。 6. 深入JVM监控和诊断工具:如JConsole...
此外,JVM参数调优是实战中的必备技能。通过设置-Xms、-Xmx控制堆内存大小,-XX:NewRatio调整新生代和老年代的比例,-XX:SurvivorRatio设置Eden和Survivor区的比例,以及其他众多参数,可以定制化JVM的行为,以适应...
- **性能调优**:学习如何通过调整JVM设置、索引参数、硬件配置等方式优化Elasticsearch的性能表现。 - **水平扩展**:掌握如何通过增加节点实现Elasticsearch集群的水平扩展,确保系统的可伸缩性和高可用性。 ####...
自动化工具_鼠标连点_ZMClick_兼容性软件_1743961858
内容概要:本文详细介绍了增材制造仿真技术,特别是利用ANSYS Workbench进行温度场和应力场的模拟。文中涵盖了多种增材制造工艺,如WAAM(电弧增材制造)、SLM(选择性激光熔化)和同轴送粉增材制造。重点讨论了双椭球热源模型的应用及其在APDL命令流中的实现,强调了热源参数的选择和调整。此外,还探讨了单道单层和多道多层增材仿真的特点和难点,包括网格划分、材料定义、边界条件设置等方面的具体操作步骤。通过实例展示了如何优化仿真流程,提高仿真精度,从而为增材制造的实际应用提供理论支持和技术指导。 适合人群:从事增材制造研究的技术人员、工程师及相关领域的科研人员。 使用场景及目标:适用于希望深入理解和掌握增材制造仿真技术的研究者和从业者,旨在帮助他们优化制造工艺,提升产品质量,解决实际生产中的难题。 其他说明:文章不仅提供了详细的理论讲解,还分享了许多实用的操作技巧和经验总结,使读者能够更快地上手并应用于实际工作中。
DeepSeek 提示词设计、幻觉避免与应用(50页)
《中医馆小程序观摩 demo 源码简介》 本资源为中医馆小程序观摩 demo 源码,是极具价值的学习资源。该源码完整呈现了中医馆小程序的架构与功能实现逻辑,涵盖多个核心板块。 从界面设计看,有简洁美观且贴合中医文化风格的用户交互页面,方便患者操作。在功能模块方面,具备挂号预约系统,患者能便捷预约专家号、普通号,还可查看医生排班;诊疗记录管理功能,详细记录患者病情、诊断、药方等,便于医生回顾与后续治疗参考;中药知识科普板块,介绍各类中药材功效、适用病症及使用禁忌,增加患者对中医的认知。 其代码结构清晰,注释丰富,无论是对于初学者了解小程序开发流程、熟悉前端框架运用,还是有一定经验的开发者深入研究特定功能实现,如数据库交互优化、接口安全管理等,都有极大帮助。开发者可借鉴其设计模式与技术选型,快速上手并开发出功能更完善、用户体验更佳的中医馆相关小程序或其他医疗健康类应用。总之,这是一份不可多得的学习资源,助力开发者提升技术水平,拓展开发思路。
第19.2章-【星曈科技】openmv H7 plus openmv视觉循迹功能-完成视觉识别指定区域 OpenMV视觉模块循迹_巡线功能 STM32F103C8T6视觉巡线小车
内容概要:本文介绍了“捉妖主升浪指标”的具体实现代码及其应用逻辑。该指标主要用于股票市场技术分析,通过一系列复杂的数学运算和条件判断,识别股票价格走势中的关键节点。核心公式包括平台突破、主力筹码、RSI等技术指标的计算,以及多个条件组合来判断不同类型的“捉妖”信号,如突破捉妖、拉升捉妖、逼空捉妖、超跌捉妖等。每个信号都有特定的颜色标识,并在图表上显示相应的提示信息。 适合人群:对股票交易和技术分析有一定了解的投资者,尤其是希望借助技术指标提高选股效率的专业人士或资深股民。 使用场景及目标:①用于股票市场的技术分析,帮助投资者识别潜在的强势股;②结合其他分析工具,为买卖决策提供参考依据;③通过捕捉短期爆发性上涨机会,优化投资组合收益。 阅读建议:由于该指标涉及较多专业术语和技术细节,建议读者先熟悉常用的技术分析方法,再深入研究此指标的具体实现逻辑。同时,在实际操作中应结合市场情况灵活运用,避免机械套用。
《基于STM32、ESP8266、微信小程序搭建的MQTT智能家居设计资料.zip》是一份极具价值的学习资源。它详细展示了如何结合嵌入式技术与移动互联网技术,实现智能家居系统的远程控制与实时监控。通过这份资料,学习者可以深入了解STM32微控制器的硬件设计、ESP8266 Wi-Fi模块的通信编程,以及微信小程序的用户界面开发。该资源不仅提供了完整的项目代码和文档说明,还强调了数据安全和用户体验的重要性,非常适合物联网和智能家居领域的初学者及进阶者学习参考。
小程序源码 - 海报组件:打造个性化朋友圈分享体验 本资源是一份极具实用价值的学习资源,聚焦于小程序中的海报组件开发。它旨在帮助开发者掌握生成朋友圈分享海报并生成图片的关键技术,为丰富小程序的社交分享功能提供有力支持。 该源码详细展示了如何构建一个高效且美观的海报组件。从布局设计到样式设置,再到动态数据的绑定与处理,每一个环节都经过精心打磨。通过巧妙运用前端技术,实现了根据不同场景和需求,灵活生成个性化的朋友圈分享海报。无论是电商推广、活动宣传还是内容分享,都能借助此组件快速创建吸引人的海报图片,提升用户分享的积极性和传播效果。 这份资源对于想要深入学习小程序开发的人员而言,是一份不可多得的学习素材。它不仅提供了实际可运行的代码示例,还蕴含着丰富的开发思路和技巧,能够帮助开发者快速理解并应用相关技术,提升在小程序海报组件开发方面的能力,为打造更具竞争力的小程序应用奠定坚实基础。
内容概要:本文详细介绍了基于西门子1500 PLC的大型物流分拣线项目,涵盖了硬件组态、SCL编程和人机界面(HMI)配置。项目涉及18个远程IO模块和39个ST40 CPU,旨在提高分拣效率和准确性。硬件部分重点描述了远程IO模块和扫码枪的配置,确保系统的稳定性和通信质量。软件部分则通过SCL编程实现了分拣逻辑,包括根据扫码信息确定分拣路径、处理不同运营模式下的分拣策略等。HMI配置方面,使用了KTP1200触摸屏提供实时监控和操作界面,增强了系统的易用性和透明度。 适合人群:从事工业自动化、PLC编程和物流系统设计的专业工程师和技术人员。 使用场景及目标:适用于需要构建或优化自动化分拣系统的物流中心。主要目标是提高分拣效率和准确性,减少人工干预,确保系统的稳定运行。 其他说明:文中还分享了一些实用技巧和调试经验,如处理扫码枪数据、优化HMI界面设计等,为后续项目实施提供了宝贵的参考资料。
1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设项目的学生、或者相关技术学习者作为学习资料参考使用。 3、该资源包括全部源码,需要具备一定基础才能看懂并调试代码。 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip 地铁图小程序源码.zip地铁图小程序源码.zip地铁图小程序源码.zip
经营分析中的指标勾稽关系(15页PPT)
本工具用于扫描您指定的硬盘分区或目录下的文件,自动根据文件大小,创建时间以及文件名称排列并显示可能重复的文件。
MySQL数据库备份多循环.sh
内容概要:本文详细介绍了基于Lumerical FDTD仿真的逆向设计片上功率分束器项目。首先概述了Lumerical FDTD仿真的基础概念及其在光学仿真领域的应用,接着重点讲解了逆向设计的核心思想,即通过定义目标输出反推得到满足条件的结构。文中提供了多个代码片段展示如何创建仿真区域、定义目标分束比例、更新仿真结构、运行仿真、计算误差并调整结构参数。此外,还分享了完整的项目工程文件和一份详细的1.7万字报告,涵盖了从项目背景、原理阐述到具体仿真步骤、逆向设计算法分析、结果讨论和优化方向等多个方面。 适合人群:从事光通信、集成光学研究的专业人士,尤其是对Lumerical FDTD仿真和逆向设计感兴趣的科研人员和技术开发者。 使用场景及目标:适用于希望深入了解片上功率分束器设计原理及其实现方法的研究人员;帮助读者掌握Lumerical FDTD仿真工具的具体使用技巧;为相关领域的创新设计提供参考案例和支持。 其他说明:该项目不仅展示了逆向设计理念的实际应用,还强调了在实际操作中遇到的问题及解决方案,如参数调整、结构优化、网格划分等。同时,通过大量实例代码和图表,使读者能够更好地理解和复现实验过程。
内容概要:本文详细介绍了Linux缓存机制及其对系统性能的提升作用。文章首先通过类比解释了缓存机制的重要性,随后阐述了缓存机制的工作原理,包括读取过程、写入策略(回写和写透缓存)、以及缓存回收策略(如LRU)。接着,文章分类讲解了不同类型的缓存,如文件系统缓存、页面缓存和缓冲缓存,并具体说明了它们在Web服务器和数据库查询中的应用。最后,文章介绍了如何查看和管理Linux缓存,包括释放缓存和管理Swap交换分区的方法,展示了缓存机制在实际场景中的性能优化效果。 适合人群:对Linux系统有一定了解的系统管理员、开发者和技术爱好者。 使用场景及目标:①理解Linux缓存机制的基本概念和工作原理;②掌握如何通过缓存机制优化系统性能,特别是在Web服务器和数据库查询方面;③学会使用相关命令查看和管理缓存,以应对不同的系统需求和性能问题。 其他说明:随着技术的发展,未来的缓存技术将在智能化和自动化方向取得更大突破,为系统管理员提供更便捷的管理和监控手段。文章鼓励读者深入探索Linux缓存机制,以更好地理解和优化系统性能。
内容概要:本文详细介绍了如何利用欧姆龙PLC通过RS485通信实现Modbus RTU主站通讯的方法。主要内容分为硬件配置和软件编程两大部分。硬件方面,强调了RS485模块的选择和设置,特别是波特率、数据位、停止位等参数的配置。软件编程则涵盖了读操作和写操作的具体实现步骤,包括CRC校验的应用、功能码的选择以及轮询机制的设计。此外,文中提供了具体的代码示例,帮助读者更好地理解和实施。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉欧姆龙PLC和Modbus RTU协议的用户。 使用场景及目标:①快速搭建欧姆龙PLC作为Modbus RTU主站的通信环境;②简化配置流程,提高工作效率;③解决传统配置方法中存在的复杂性和不确定性。 其他说明:文中提到的功能块适用于多种型号的欧姆龙PLC,如CP1H、CP1L、CJ2M等。同时,针对特定型号(如CP2E)给出了特殊的注意事项。文中还提供了一些实用的小技巧,如使用外部CRC校验工具简化读操作,以及采用轮询方式优化多从站通信。