开发者社区> 问答> 正文

Java应用性能优化:请问GC调优是一个什么过程?

Java应用性能优化:请问GC调优是一个什么过程?

展开
收起
我是小美女 2021-11-01 10:55:49 969 0
3 条回答
写回答
取消 提交回答
  • 无所不能的蛋蛋

    1.监控GC状态 2.分析监控数据并决定是否需要GC调优 3.设置GC类型和内存大小 4.分析GC调优结果

    2021-11-04 15:13:58
    赞同 展开评论 打赏
  • GC优化的步骤可以概括为:分析问题、优化参数、验证结果。

    2021-11-01 11:19:44
    赞同 展开评论 打赏
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,GC调优过程与一般的性能改进流程很相似,您可以参考一下几个步骤进行。

    1.监控GC状态

    首先需要监控GC状态信息以明确在GC操作过程中对系统的影响。
    
    

    2.分析监控数据并决定是否需要GC调优

    然后通过GC操作状态,对监控结果进行分析,并判断是否有必要进行GC调优。如果分析结果显示GC耗时在0.1-0.3秒以内的话,一般不需要花费额外的时间做GC调优。然而,如果GC耗时达到1-3秒甚至10秒以上,就需要立即对系统进行GC调优。
    
    但是如果你的应用分配了10GB的内存,且不能降低内存容量的话,其实是没办法进行GC调优的。这种情况下,你首先要去思考为什么需要分配这么大的内存。如果只给应用分配了1GB或者2GB内存,当有OutOfMemeoryError发生时,你需要通过堆dump来分析验证内存溢出的原因并进行修复。
    
    

    注释:

    堆dump是把内存情况按一定格式输出到文件,可用于检查Java 内存中的对象和数据情况。可使用JDK中内置的jmap命令创建堆dump文件。创建文件过程中,Java进程会中断,因此不要在正常运行时系统上做此操作。
    
    

    3.设置GC类型和内存大小

    如果决定做GC调优,就需要考虑如何选择GC类型、如何设置内存大小。如果你有多台服务器,可通过为每台服务器设置不同的GC选项并对比不同的表现,这一步很重要。
    
    

    4.分析GC调优结果

    设置GC选项后,至少要收集24小时的GC表现数据,然后就可以着手分析这些数据了。如果足够幸运,通过分析就刚好找到了最合适的GC选项。否则就需要分析GC日志,并分析内存的分配情况。然后通过不同的调整GC类型和内存大小来找到系统的最优选项。
    
    

    5.如果结果可接受,则对所有服务应用调优选项并停止调优

    如果GC结果令人满意,就可以把相应的选项应用到所有服务器并停止GC调优。
    
    2021-11-01 11:07:00
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载