zoukankan      html  css  js  c++  java
  • JVM

    内存结构:

    • 堆(线程共享):又可以细分为 新生代和老生代,大部分java对象都是存在堆中;
    • 栈(线程私有):又可以细分为虚拟机栈和本地方法栈,虚拟机栈是有栈帧组成,每一个方法的栈帧是在编译期就确定的,方法的执行就是进栈和出栈的过程;
    • 方法区(线程共享):主要存放类信息、方法的字节吗、以及静态常量;JDK8中,将String常量池从方法区移到堆中。
    • 程序计数(实际上是PC寄存器,线程私有):指示代码运行的位置,条件、循环、分支等都是通过计数器指示如何取下一条指令。

     GC算法

    • 复制算法
    • 标记 - 清除算法
    • 标记 - 整理算法

    垃圾回收器类型

    -XX:+HeapDumpOnOutOfMemoryError  生成内存快照;设置路径:-XX:HeapDumpPath=<path>

    -XX:OnOutOfMemoryError ="sh ~/cleanup.sh"  当内存溢出时,执行脚本

    查看垃圾回收的执行情况:

    jstat -gcutil pid 1000 10   1000是输出时间间隔,单位毫秒,10 是输出记录的数目

    1. S0  — Heap上的 Survivor space 0 区已使用空间的百分比  
    2. S1  — Heap上的 Survivor space 1 区已使用空间的百分比  
    3. E   — Heap上的 Eden space 区已使用空间的百分比  
    4. O   — Heap上的 Old space 区已使用空间的百分比  
    5. P   — Perm space 区已使用空间的百分比  
    6. YGC — 从应用程序启动到采样时发生 Young GC 的次数  
    7. YGCT-- 从应用程序启动到采样时 Young GC 所用的时间(单位秒)  
    8. FGC — 从应用程序启动到采样时发生 Full GC 的次数  
    9. FGCT-- 从应用程序启动到采样时 Full GC 所用的时间(单位秒)  
    10. GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)  
  • 相关阅读:
    Centos 7.9 部署可道云
    shell简单检查URL
    TIME_WAIT和CLOSE_WAIT状态过多的分析与解决
    win10 关闭自动更新
    Python3 按backspace问题 ^H
    CentOS7设置笔记本合盖不休眠
    centos7 /boot/分区处理
    if __name__ == '__main__'
    在Linux中了解TCP包装器(/etc/hosts.allow&/etc/hosts.deny)
    华为路由器端口映射
  • 原文地址:https://www.cnblogs.com/tengpan-cn/p/8963666.html
Copyright © 2011-2022 走看看