JVM
文章平均质量分 64
JVM
今天你写代码了吗??
好记性不如烂笔头!
展开
-
【JVM】CPU飙高排查方案与思路
因为根据进程ID 找到的线程id显示的是16进制,所以需要将查找的线程号转换为16进制再去对比是哪一个线程出了问题.2.通过top命令查看后,可以查看是哪一个进程占用cpu较高,上图所示的进程为:40940。4.可以根据进程 id 找到有问题的线程,进一步定位到问题代码的源码行号。3.查看进程中的线程信息。原创 2023-08-13 16:12:18 · 472 阅读 · 0 评论 -
【JVM】Java内存泄露的排查思路?
1、通过jmap指定打印他的内存快照dump(Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中)有的情况是内存溢出之后程序则会直接中断,而jmap只能打印在运行中的程序,所以建议通过参数的方式的生成dump文件。,但无法被垃圾回收器回收释放,从而导致可用内存逐渐减少,最终可能导致内存耗尽或性能下降的问题。Java内存泄露(Memory Leak)是指在Java程序中,无用的对象占用了。2、使用vm参数获取dump文件(可以指定生成dump文件的文件目录)原创 2023-08-13 15:57:20 · 1160 阅读 · 0 评论 -
【JVM】JVM 调优的参数都有哪些?
但有时我们发现,虽然次数减少了,但Eden区满的时候,由于占用的空间较大,导致释放缓慢,此时STW的时间较长,因此需要。设置堆的初始大小和最大大小,为了防止垃圾收集器在初始大小、最大大小之间收缩堆而产生额外的时间,设置年轻代中Eden区和两个Survivor区的大小比例。通常减少每个线程的堆栈,可以产生更多的线程,但这实际上还受限于操作系统。最大大小的默认值是物理内存的1/4,初始大小是物理内存的1/64。,用于存放栈帧、调用参数、局部变量等,但。堆内存大肯定是好的,存在风险,假如。按照程序情况去调优。原创 2023-08-13 15:17:54 · 524 阅读 · 1 评论 -
【JVM】JVM垃圾收集器
垃圾收集器是负责执行垃圾回收的组件,它们用于管理Java程序运行时的内存分配和释放。垃圾收集器的主要任务是自动回收不再使用的内存对象,并将内存空间重新回收以供程序继续使用。原创 2023-08-12 21:26:12 · 650 阅读 · 1 评论 -
【JVM】JVM中的分代回收
在java8时,堆被分为了两份:新生代和老年代【1:2】其中:对于新生代,内部又被分为了三个区域。伊甸园区Eden,新生的对象都分配到这里幸存者区survivor(分成from和to)Eden区,from区,to区【8:1:1】原创 2023-08-12 20:36:09 · 806 阅读 · 0 评论 -
【JVM】类装载的执行过程
static变量,分配空间在准备阶段完成(设置默认值),赋值在初始化阶段完成。当不再需要某个类时,卸载它以释放内存空间。这一步会创建一个与被加载类对应的Class对象。创建java.lang.Class类的实例,表示该类型。解析类的二进制数据流为方法区内的数据结构(Java类模型),检查是否存在,不存在就会报相应不存在的错误。非静态的先new个对象实例,再通过对象调用。通过类的全名,获取类的二进制数据流。类装载总共分为7个过程,分别是。对其他类、字段、方法的。是否有对应的类和方法。静态变量,静态代码块。原创 2023-08-12 17:38:00 · 1161 阅读 · 0 评论