zoukankan      html  css  js  c++  java
  • JVM:调优

    什么时候会发生垃圾回收

    • MinorGC:Eden区或者S区不够用了
    • MajorGC:老年代不够用了
    • FullGC = MinorGC + MajorGC + MetaSpace GC
    • System.gc()(该方法不会立即唤起gc )

    什么时候需要调优

    • 出现问题:频繁GC?cpu高--->打印GC日志--->结合工具查看---> 修改堆内存空间/垃圾收集器选择
    • cpu持续飙升:top查看哪个进程cpu使用率高--->查看可能的情况情况:线程/堆栈/jvm参数 jstack/jinfo/jmap--->
    • oom:dump文件,分析dump文件--->MAT/其他工具

    如何调优

    1、调整堆大小(调大):Xms、Xmx

    • 提高吞吐量
    • GC次数减少
    • 停顿时间变大(空间变大了,打扫时间变长)

    2、设置停顿时间(G1)(调小):-XX:MaxGCPauseMillis=15

    • 停顿时间变小
    • GC次数变多
    • 吞吐量无太大变化
      切记不要手动调整young区大小,设置停顿时间的时候会自适应地调整young区的大小。

    3、启动并发GC时(堆内存使用占比)调

    G1和CMS的区别

    • CMS:标记-清除 空间碎片;G1:标记-整理 减少空间碎片
    • CMS:分新生代老年代。引用Card Table;G1:分region,物理上不分young和old区,只有逻辑上区分。Remerbered Set RSet,谁引用了我
    • G1:多核、大内存,G1停顿时间。

    总结

  • 相关阅读:
    C# 扩展方法使用
    C# 程序集安装与卸载
    C#截取当前活动窗体的图片
    DateTime格式
    c# asp.net 多数组索引的解决方法
    关于DataSet中Relations的应用
    datalist 分页
    ASP.NET(C#) Repeater分页的实现
    asp.net 六大对象之Request、Response
    什么是DOM
  • 原文地址:https://www.cnblogs.com/fcb-it/p/13363504.html
Copyright © 2011-2022 走看看