![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
王继波
这个作者很懒,什么都没留下…
展开
-
Serial,Parallel,CMS,G1四大GC收集器特点小结
原创地址: http://blog.csdn.net/u013812939/article/details/487823431.Serial收集器一个单线程的收集器,在进行垃圾收集时候,必须暂停其他所有的工作线程直到它收集结束。特点:CPU利用率最高,停顿时间即用户等待时间比较长。适用场景:小型应用通过JVM参数-XX:+UseSerialGC可以使用串行垃转载 2017-06-18 22:56:44 · 296 阅读 · 0 评论 -
JAVA逃逸分析、栈上分配、标量替换、同步消除
一、逃逸分析逃逸分析是编译语言中的一种优化分析,而不是一种优化的手段。通过对象的作用范围的分析,为其他优化手段提供分析数据从而进行优化。逃逸分析包括:全局变量赋值逃逸 方法返回值逃逸 实例引用发生逃逸 线程逃逸:赋值给类变量或可以在其他线程中访问的实例变量.public class EscapeAnalysis { public static Object obje...转载 2019-05-26 13:38:05 · 264 阅读 · 0 评论 -
JVM 之 OopMap 和 RememberedSet
OopMap 用于枚举 GC Roots ;RememberedSet 用于可达性分析。OopMapOopMap 记录了栈上本地变量到堆上对象的引用关系。其作用是:垃圾收集时,收集线程会对栈上的内存进行扫描,看看哪些位置存储了 Reference 类型。如果发现某个位置确实存的是 Reference 类型,就意味着它所引用的对象这一次不能被回收。但问题是,栈上的本地变量表里面只有一部分...转载 2019-05-13 23:44:00 · 368 阅读 · 0 评论 -
为什么新生代有两个survivor?
利用两个survivor达到新生代无碎片的目的:Eden survivor1 survivor2 old S1、程序初始化,新生代的三个空间均为空S2、Eden被分配的新对象占满,触发第一次Minor GC,Eden中存活对象被复制到Survivor1中,剩余对象被回收(回收后,Eden为空,Survivor1无碎片地存放所有存活对象...转载 2019-04-11 23:28:02 · 388 阅读 · 0 评论 -
触发JVM进行Full GC的情况及应对策略
转载: https://blog.csdn.net/chenleixing/article/details/46706039/堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示:从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本...转载 2018-08-12 17:44:54 · 199 阅读 · 0 评论 -
jstat参数说明
jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒输出结果不断的在屏幕打印出结果 S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC 87...原创 2018-08-12 16:39:01 · 2330 阅读 · 0 评论 -
Java深入 - 触发Full GC执行的情况
转:https://blog.csdn.net/initphp/article/details/24994473触发FULL GC的四种情况1. System.gc()方法调用一般情况下禁止使用此方法,让JVM自己决定FULL GC即可。2. 老生代空间不足老生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,会出现FULL GC情况。当执行Full GC后空间仍然不足,则抛出...转载 2018-06-15 11:21:27 · 413 阅读 · 0 评论 -
JVM频繁Full GC的情况及应对策略
堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示:从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生带即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的...转载 2018-06-13 23:07:23 · 432 阅读 · 0 评论 -
Serial,Parallel,CMS,G1四大GC收集器特点小结
地址: https://blog.csdn.net/u011445156/article/details/73441648 1.Serial收集器一个单线程的收集器,在进行垃圾收集时候,必须暂停其他所有的工作线程直到它收集结束。特点:CPU利用率最高,停顿时间即用户等待时间比较长。适用场景:小型应用通过JVM参数-XX:+UseSerialGC可以使用串行垃圾回收器。2.Parallel收集器采用...转载 2018-03-23 15:25:26 · 226 阅读 · 0 评论 -
jstat参数说明
jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒输出结果不断的在屏幕打印出结果 S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC转载 2017-08-10 09:04:28 · 1807 阅读 · 0 评论 -
stop-the-world STW
转至: http://f.dataguru.cn/thread-363910-1-1.html"stop-the-world" 机制简称STW,即,在执行垃圾收集算法时,Java应用程序的其他所有除了垃圾收集帮助器线程之外的线程都被挂起Java中一种全局暂停的现象全局停顿,所有Java代码停止,native代码可以执行,但不能和JVM交互多半由于GC引起原创 2017-06-24 17:08:09 · 473 阅读 · 0 评论 -
Java对象的强、软、弱和虚引用
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50073687文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这就像在日常生活中,从商店购买了某样物品后,如果...转载 2017-07-12 11:44:48 · 218 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
转至 : https://my.oschina.net/feichexia/blog/196575 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问...转载 2017-06-29 17:28:37 · 260 阅读 · 0 评论 -
JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?
在我的上一篇博客中,介绍了JVM堆内存的结构以及在堆中进行的GC机制,链接是浅谈JAVA GC机制与性能优化那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?1 为什么要有Survivor区先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里? 如果没有Survivor,Eden区每进行一次M转载 2017-06-18 22:53:25 · 4280 阅读 · 0 评论 -
查看jvm启动参数
原文:https://blog.csdn.net/zhongyisun/article/details/78060759可以采用jcmd来查看正在运行的JVM的参数。jcmd从JDK 7开始引入的一个JVM诊断命令行工具,可以向运行中的JVM发送诊断命令。1.查看JVM进程的PID 或者通过 jps2.jcmd pid VM.flagsorjinfo -flags pi...转载 2019-05-23 11:06:14 · 5121 阅读 · 0 评论