![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 88
jvm相关
luzaichun
这个作者很懒,什么都没留下…
展开
-
GC日志参数和垃圾收集器
GC日志打印相关参数说明-XX:PrintGCDetails开启gc日志打印-Xloggc:{path}/gc.log输出gc日志到指定路径文件-Xloggc:{path}/gc.%t.logjava8以后可以用%p,%t占位符来指定gc输出文件,%p:进程pid;%t:启动时间戳-XX:+UseGCLogFileRotation启动日志循环打印-XX:NumberOfGClogFiles=5会滚动覆盖旧的gc日志,只保留最新的5个-XX:GCL原创 2021-01-19 21:15:14 · 186 阅读 · 0 评论 -
jps、jinfo、jmap、jstack、jstat
1.jsp 查看java进程pidpid是后面几个命令使用都需要的参数,所以这个命令最好掌握。(如果发现命令执行报错,就是java环境变量相关没配好,网上找下资料解决)2.jinfo 查看jvm运行参数我一般习惯命令:jinfo -flags pid查看某一个参数:jinfo -flag 参数名 pid3.jmap查看当前堆信息:jmap -heap piddump...原创 2020-01-12 17:14:46 · 377 阅读 · 1 评论 -
JVM架构-运行时数据区
一个class文件–》Class Loader(类加载器)–》Runtime Data Area(运行时数据区)–》Execution Engine(执行引擎)或Native Interface(本地方法接口)–》本地依赖库Class Loader:依据特定格式,加载class文件到内存(详细信息可查看,类加载相关信息)Execution Engine:对命令进行解析Native Inte...原创 2020-01-12 16:37:17 · 129 阅读 · 0 评论 -
垃圾回收之常见垃圾回收器
Stop-the-WorldJVM由于要执行GC而停止了应用程序的执行任何一种GC算法中都会发生多数GC优化通过减少Stop-the-World发生的时间来提高程序性能Safepoint在可达性分析算法中,分析过程中对象引用关系不会发生变化的点产生Safepoint的地方:方法调用;循环跳转;异常跳转等安全点数量得适中jvm得运行模式Server 启动慢,稳定后比C...原创 2020-01-12 15:43:19 · 211 阅读 · 0 评论 -
java中的强引用、软引用、弱引用、虚引用
强引用最普遍的引用:User user = new User();jvm宁可抛出OutOfMemoryErrorr终止程序,也不会回收具有强引用的对象。(这句话很重要,请记住,对后面垃圾回收理那些对象解有帮助)可以通过将对象设置为null来弱化引用,使其回收软引用当内存空间不足时候,GC才会回收该引用对象的内存可以用来实现高速缓存弱引用1.GC时候会被回收,不管内存空间是...原创 2020-01-12 15:29:26 · 142 阅读 · 0 评论 -
垃圾回收之回收算法
1.标记-清除算法(Mark and Sweep)标记:从根(GC Root)集合进行扫描,对存活的对象进行标记。–(可达性分析算法)清除:对堆内存从头到尾进行线性遍历,回收不可达对象缺点:垃圾回收后会产生不连续的内存碎片。(例如,途中的CD HI被回收后,空闲的内存空间并不连续。)那么在下一次申请比较大的连续空间时,可能会没有可用使用的内存空间,导致提前触发下一次的内存回收。2.复制算...原创 2020-01-12 15:15:20 · 129 阅读 · 0 评论 -
垃圾回收之标记算法
判定对象是否为垃圾的算法(标记为垃圾)1.引用计数算法2.可达性分析算法1.引用计数算法通过判断对象的引用数量来决定对象是否可以被回收每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1任何引用计数为0的对象实例可以被当作垃圾收集优点:执行效率高,程序执行受影响小缺点:无法检测出循环引用情况,导致内存泄漏2.可达性分析算法通过判断对象的引用链是否可达来决定对象是否可以被...原创 2020-01-12 14:55:42 · 227 阅读 · 0 评论