JVM
-
虚拟机栈和本地方法栈为什么是私有的?
虚拟机栈 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和...
-
JVM调优命令有哪些?
jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。 jstat JVM statistics Monitoring是用于监视虚拟...
-
说一下 JVM 调优的工具?
常用调优工具分为两类,jdk自带监控工具:jconsole和jvisualvm,第三方有:MAT(Memory AnalyzerTool)、GChisto。 jconsole,Ja...
-
说一下堆和栈的区别
物理地址 堆的物理地址分配对对象是不连续的。因此性能慢些。在GC的时候也要考虑到不连续的分配,所以有各种算法。比如,标记-消除,复制,标记-压缩,分代(即新生代使用复制算法,老年代...
-
说说你知道的几种主要的JVM参数
堆栈配置相关 -Xmx3550m: 最大堆大小为3550m。 -Xms3550m: 设置初始堆大小为3550m。 -Xmn2g: 设置年轻代大小为2g。 -Xss128k: 每个线...
-
什么情况下会发生栈内存溢出?
栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口等信息。局部变量表又包含基本数据类型,对象引用类型。 ...
-
你了解过哪些垃圾收集器?
年轻代 Serial 垃圾收集器(单线程,通常用在客户端应用上。因为客户端应用不会频繁创建很多对象,用户也不会感觉出明显的卡顿。相反,它使用的资源更少,也更轻量级。) ParNew...
-
你知道哪些GC类型?
Minor GC:发生在年轻代的 GC。 Major GC:发生在老年代的 GC。 Full GC:全堆垃圾回收。比如 Metaspace 区引起年轻代和老年代的回收。 精品推荐 ...
-
程序计数器有什么作用?
程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。这里面存的,就是当前线程执行的进度。 程序计数器还存储了当前正在运行的流程,包括正在执行的指令...
-
你都有哪些手段用来排查内存溢出?
内存溢出包含很多种情况,我在平常工作中遇到最多的就是堆溢出。有一次线上遇到故障,重新启动后,使用jstat命令,发现Old区在一直增长。我使用jmap命令,导出了一份线上堆栈,然后...
-
你用过哪些jvm性能调优工具?
常用调优工具分为两类 1、jdk自带监控工具 jconsole,Java Monitoring and Management Console是从java5开始,在JDK中自带的ja...
-
你知道哪些JVM性能调优参数?
1、设定堆内存大小: -Xms 设置最小堆内存大小(不能小于1024K); -Xms 堆内存初始大小,可以通过jmap工具进行查看 -Xmx 设置最大堆内存大小(不能小于1...
-
JVM调优命令有哪些?
1、jps VM Process Status Tool显示指定系统内所有的HotSpot虚拟机进程。 2、jstat JVM statistics Monitoring是用于监视...
-
假如生产环境CPU占用过高,请谈谈你的分析思路和定位?
1、首先,使用top -H命令获取占用CPU最高的线程,并将它转化为16进制。 2、然后,使用jstack命令获取应用的栈信息,搜索这个16进制。这样能够方便的找到引起CPU占用过...