
JVM
听友
这个作者很懒,什么都没留下…
展开
-
使用JProfiler工具分析OOM原因
在一个项目中,突然出现了OOM故障,那么该如何排除,研究为什么出错?能够看到代码第几行错:内存快照分析工具,MAT,JProfilerDebug,一行行分析代码MAT,JProfiler作用:分析Dump内存文件,快速定位内存泄露获得堆中的数据获得大的对象JVM参数:-Xms:设置初始化内存分配大小 1/64-Xmx:设置最大分配内存,默认1/4-XX:+PrintGCDetails,打印GC垃圾回收信息-XX:+HeapDumpOnOutOfMemoryError,打印OO原创 2020-06-01 23:11:59 · 733 阅读 · 0 评论 -
新生区、永久区、堆内存调优
JDK8之前堆的结构是这样的:JDK8将永久存储区改为了元空间。新生区:类:诞生和成长的地方,直至死亡;伊甸园:所有对象都是在伊甸园区 new出来的!幸存者区(0,1)老年区:真理:经过研究,99%的对象都是临时对象!永久区:jdk1.6之前 :永久代,常量池是在方法区jdk1.7 :永久代,但是慢慢的退化了,去永久代,常量池在堆中jdk1.8之后 :无永久代,常量池在元空间这个区域是常驻内存的。用来存放JDK自身携带的Class对象,Interface元数据,存储的原创 2020-06-01 17:56:34 · 289 阅读 · 0 评论 -
Native详解
Native:凡是带了Native关键字的,说明Java的作用范围达不到了,会去调用底层C语言的库!会进入本地方法栈,调用本地方法本地接口JNI(Java Native Interface),JNI的作用是扩展Java的使用,融合不同的编程语言为Java所用,最初是想融合C、C++。因为Java诞生的时候,C、C++横行,想要立足,必须要有调用C、C++的程序,它在内存区域中专门开辟了一块标记区域,Native Method Stack,登记Native方法,在最终执行的时候,通过JNI加载本地方法库中原创 2020-06-01 16:11:27 · 2692 阅读 · 0 评论