1.JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots
   答:什么是垃圾:简单的说就是内存中已经不再被使用到的空间就是垃圾
       要进行垃圾回收,如何判断一个对象是否可以被回收?
          1引用计数法
          
          2枚举根节点做可达性分析(根搜索路径)
               基本思路就是通过一系列名为“GC Roots”的对象作为起点,从这个被称为GC Roots的对象开始向下搜索,如果一个对象到GC Roots没有任何引用链相连时,则说明此对象不可用。也即单个元素的队列。
               给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历到的(可到达的)对象就被判定为存活;没有被遍历到的就自然被判定为死亡。
          java中可以作为GC Roots的对象:
                 虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中引用的对象。
                 方法区中的类静态属性引用的对象。
                 方法区中常量引用对象。
                 本地方法栈中JNI(Native方法)引用的对象。

2.JVM调优和参数配置,请问如何盘点查看JVM系统默认值。
    答:Xms  Xms和Xmx最好要调成一致 避免GC平凡的收集忽高忽低   -Xms 等价于 -XX:InitialHeapSize 初始化的堆内存
                                       -Xmx 等价于 -XX:MaxHeapSize 初始化的堆内存
        Xmx:堆空间
        Xss:初始栈空间 
        JVM的参数类型:标配参数
                            -version 微森、-help 耗破、java-showversion
                       X参数(了解)
                            -Xint 解释执行
                            -Xcomp 第一次使用就编译成本地代码
                            -Xmixed 混合模式
                      *XX参数
                             Boolean类型
                                  公试: -XX:+或者 - 某个属性值
                                          +表示开启
                                          -表示关闭
                                  Case:是否打印GC收集细节
                                                -XX:-PrintGCDetails 
                                                -XX:+PrintGCDetails
                                        是否使用串行垃圾回收器
                                                -XX:-UseSerialGC
                                                -XX:+UseSerialGC
                                        
                             KV设值类型
                                   公试:-XX:属性key=属性值value
                                   
                                   Case: -XX:MetaspaceSize=128m   21M  元空间
                                         -XX:MaxTenuringThreshold=15
                            
                             jps:查看进程编号 -l
                             jinfo举例,如何查看当前运行程序的配置
                             jinfo -flag MetaspaceSize 4300
                             题外话(坑题):两个经典参数:-Xms和-Xmx
                                             这个你如何 解释:-Xms 等价于 -xx:InitialHeapSize 初始化的堆内存
                                                              -Xmx 等价于 -XX:MaxHeapSize 初始化的堆内存
                             第一种,查看参数盘点家底
                             jps -l
                             jinfo -flag 具体参数  java进程编号
                             jinfo -flags          java进程编号
                             jinfo -flags PrintGCDetails 13344
                             
                             第二种,查看参数盘点家底          佛拉歌s  因尼踢奥
                                     查看JVM默认值:-XX:+PrintFlagsInitial
                                                             主持要查看初始默认
                                                             公式 java -XX:+PrintFlagsInitial -version
                                                                  java -XX:+PrintFlagsInitial
                                                             主要查看修改更新
                                                    -XX:+PrintFlagsFinal    no
                                                                  java -XX:+PrintFlagsFinal -version
                                                                  java -XX:+PrintFlagsFinal
                                                             打印命令行参数
                                                                克梦按的 赖恩
                                                    -XX:+PrintCommandLineFlags
                                                                  java -XX:+PrintCommandLineFlags -version
                                    方法区
                                    可通过-XX:PermSize和-XX:MaxPermSize来指定最小值和最大值。
                                    
常用参数配置:
     -Xms128m -Xmx4096m -Xss1024k -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC

3.你平时工作用过的JVM常用基本配置参数有哪些?
     答:常用参数 -Xms:初始大小内存,默认为物理内存1/64  
                       等价于 -XX:InitialHeapSize
                  -Xmx:最大分配内存,默认为物理内存1/4
                        等价于 -XX:MaxHeapSize 
                  -Xss:设置单个线程栈的大小,一般默认为512K - 1024K
                        等价于:-XX:ThreadStackSize       ThreadStackSize=0如果是0用的就是系统出厂默认值。
                  -Xmn:设置年轻代
                  -XX:MetaspaceSize :设置元空间大小  默认20多M  美特思贝思
                                       元空间的本质和永久代类似,都是对JVM规范中方法区的实现。
                                       不过元空间与永久代之间最大的区别在于:
                                       元空间并不在虚拟机中,而是使用本地内存
                                       因此,默认情况下,元空间的大小仅受本地内存限制
                                       -Mms10m -Xmx10m -XX:MetaspaceSize=1024m -XX:+PrintFlagsFinal    
                                       -Mms128m -Xmx4096m -Xss1024m -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC                                           
                 *-XX:+PrintGCDetails  低特奥思
                         输出详细GC收集日志信息
                         规律:
                         GC
                         【GC类型 GC前新生代内存占用->GC后内存占用 新生代总大小 GC前JVM堆内存占用->GC后JVM堆内存使用 JVM堆总大小 GC耗时 用户耗时 系统耗时 实际耗时】
                         
                         FullGC
                         
                  -XX:SurvivorRatio 威小
                        设置新生代中eden和S0/S1空间的比列
                        默认
                        -XX:SurvivorRatio=8,Eden:S0:S1=8:1:1
                        假如
                        -XX:SurvivorRatio=4,Eden:S0:S1=4:1:1 
                        SurvivorRatio值就是设置eden区的比例占多少,S0/S1相同
                       
                  -XX:NewRatio
                        配置年轻代与老年代在堆结构的占比
                        默认
                        -XX:NewRatio=2新生代占1,老年代2,年轻代占整个堆的1/3
                        假如
                        -XX:NewRatio=4新生代占1,老年代4,年轻代占整个堆的1/5
                        NewRatio值就是设置老年代的占比,剩下的1给新生代
                  
                  -XX:MaxTenuringThreshold
                        设置垃圾最大年龄
                        查看默认进入老年代年龄:
                        jinfo -flag MaxTenuringThreshold 17344(进程编号)
                        -XX:MaxTenuringThreshold=15
                        
                        -XX:MaxTenuringThreshold=0:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。
                        如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

JVM调优和参数配置相关推荐

  1. JVM调优常用参数配置

    2019独角兽企业重金招聘Python工程师标准>>> 堆配置 -Xms:初始堆大小 -Xms:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n: ...

  2. JVM调优之参数配置: -Xms -Xmx -Xmn -XX:+PrintGCDetails -XX:UseSerialGC -XX:SurvivorRadio -XX:NewRadio

    JVM提供了诸多的参数进行JVM各个方面内存大小的设置,为Java应用进行优化提供了诸多的工具,本文将会详细分析各个参数的功能与使用. 1.常见参数说明: -Xms: //堆内存初始化大小 -Xmx: ...

  3. JVM的进阶学习(GC Roots、JVM调优与参数配置、)

    1. GC Roots,可达性分析 从GC roots的对象作为起始点,从GC Roots对象开始向下搜索,如果一个对象到GCRoots没有任何引用链相连,则说明对象不可用.即给定一个集合的引用作为根 ...

  4. java面试-JVM调优和参数配置

    JVM的参数类型: 1.标配参数: java -version java -help 2.X参数: -Xmixed 混合模式 -Xint  解释执行 -Xcomp 第一次使用就编译成本地代码 3.XX ...

  5. JVM调优的基本配置参数

    目录 Java中可以作为GC Roots的对象有哪些 JVM调优 JVM常用的基本配置参数有哪些 什么是GC Roots 因为确立垃圾的方法有引用记数法,但是会产生循环引用,所以引出了另一种方法叫可达 ...

  6. JVM调优及参数设置

    (1)参数 -Xms:初始堆大小 -Xmx :最大堆大小 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存 -Xmn :年轻代大小 整个堆大小=年轻代大小 + 年老代大小 + 持 ...

  7. JVM调优-GC参数

    一.Throughput收集器(吞吐量) -XX:+UseParallelGC -XX:+UseParallelOldGC *参数调整:通过调整堆大小,减少GC停顿时间,增大吞吐量 增强堆大小可以减少 ...

  8. 大数据培训:Spark性能调优与参数配置

    Spark性能调优-基础篇 众所周知,正确的参数配置对提升Spark的使用效率具有极大助力,帮助相关数据开发.分析人员更高效地使用Spark进行离线批处理和SQL报表分析等作业. 推荐参数配置模板如下 ...

  9. Mysql性能调优常用参数配置

    全文中一共有常用的(事实上你如果花1-2周阅读.理解.自己动手设一下后是需要这么多参数的)76个参数 可能你从未看到过这样的一篇集中火力式的把mysql参数列了这么全的文章.因此这一篇是汇集了最精华和 ...

最新文章

  1. python 函数 日期区间_python-如何获取两个日期之间的日期
  2. 用Python和OpenCV创建一个图片搜索引擎的完整指南
  3. 介绍一下XMLHttpRequest对象,他有哪些常用方法和属性
  4. python使用指南(part1)--去重
  5. ipv4转换ipv6工具_IPv4与IPv6的区别,不仅仅是地址变长而已
  6. 数据结构与算法python语言描述答案_《数据结构与算法Python语言描述》习题第二章第一题(python版)...
  7. [设想]增加比较的多元运算符
  8. Knowledge Distillation(知识蒸馏)Review--20篇paper回顾
  9. gps测量与数据处理第三版pdf_测量培训需要掌握哪些知识点呢?_东英时代何老师...
  10. oracle隐含参数 开库,Oracle数据库隐含参数介绍
  11. jQuery的实用特性扩展类库:jQuery++
  12. 英伟达驱动更新记录_手把手教你如何通过NVIDIA(英伟达显卡)官网及时更新升级显卡驱动程序版本-网络教程与技术 -亦是美网络...
  13. 【案例教程不讲废话】Cisco Packet Tracer 思科教程(精+简之快速掌握)一:组建小型局域网
  14. Kubernetes — 监控方案
  15. linux下动态库的符号冲突、隐藏和强制优先使用库内符号
  16. 防火墙和代理服务器之间有什么区别
  17. 2022-2028全球粉尘检测仪行业调研及趋势分析报告
  18. C语言 删除单链表中值为e的全部元素
  19. 【pandas】变形(长宽表变换)
  20. 计算机辅助教育课件有哪些类型,多媒体计算机辅助教学 (2).ppt

热门文章

  1. SQL执行顺序的优先级
  2. 基于Android的计步器(Pedometer)的讲解(二)——柱状图分析2
  3. STEMA (STEM 能力测试) 考 试 白 皮 书--scratch编程部分例子试题及实现
  4. 读《人类简史 我们人类这些年》亚特伍德 著
  5. 2021平安金服1年前端经验社招 面试问题全记录(已入职)
  6. 在c语言中 反斜杠符是,[转载]C语言中反斜杠的使用
  7. 队列的入队、出队操作
  8. 如何将PyCharm的语言设置为中文?
  9. 蓝桥真题 2019_3_数列求解
  10. sysClkRateGet();返回系统时钟每秒的tick数量, tick详解!