jvm内存查看与分析工具
来源:互联网 发布:shuffle python 编辑:程序博客网 时间:2024/05/16 09:45
2.3 JVM的垃圾收集策略
GC的执行时要耗费一定的CPU资源和时间的,因此在JDK1.2以后,JVM引入了分代收集的策略,其中对新生代采用"Mark-Compact"策略,而对老生代采用了“Mark-Sweep"的策略。其中新生代的垃圾收集器命名为“minor gc”,老生代的GC命名为"Full Gc 或者Major GC".其中用System.gc()强制执行的是Full Gc.
2.3.1 Serial Collector
Serial Collector是指任何时刻都只有一个线程进行垃圾收集,这种策略有一个名字“stop the whole world",它需要停止整个应用的执行。这种类型的收集器适合于单CPU的机器。
Serial Copying Collector
此种GC用-XX:UseSerialGC选项配置,它只用于新生代对象的收集。1.5.0以后。-XX:MaxTenuringThreshold来设置对象复制的次数。当eden空间不够的时候,GC会将eden的活跃对象和一个名叫From survivor空间中尚不够资格放入Old代的对象复制到另外一个名字叫To Survivor的空间。而此参数就是用来说明到底From survivor中的哪些对象不够资格,假如这个参数设置为31,那么也就是说只有对象复制31次以后才算是有资格的对象。这里需要注意几个个问题:
◆ From Survivor和To survivor的角色是不断的变化的,同一时间只有一块空间处于使用状态,这个空间就叫做From Survivor区,当复制一次后角色就发生了变化。
◆ 如果复制的过程中发现To survivor空间已经满了,那么就直接复制到old generation.
◆ 比较大的对象也会直接复制到Old generation,在开发中,我们应该尽量避免这种情况的发生。
Serial Mark-Compact Collector
串行的标记-整理收集器是JDK5 update6之前默认的老生代的垃圾收集器,此收集使得内存碎片最少化,但是它需要暂停的时间比较长。
2.3.2 Parallel Collector
Parallel Collector主要是为了应对多CPU,大数据量的环境。Parallel Collector又可以分为以下两种:
Parallel Copying Collector
此种GC用-XX:UseParNewGC参数配置,它主要用于新生代的收集,此GC可以配合CMS一起使用。1.4.1以后Parallel Mark-Compact Collector,此种GC用-XX:UseParallelOldGC参数配置,此GC主要用于老生代对象的收集。1.6.0
Parallel scavenging Collector
此种GC用-XX:UseParallelGC参数配置,它是对新生代对象的垃圾收集器,但是它不能和CMS配合使用,它适合于比较大新生代的情况,此收集器起始于jdk 1.4.0。它比较适合于对吞吐量高于暂停时间的场合,Serial gc和Parallel gc可以用如下的图来表示:
2.3.3 Concurrent Collector
Concurrent Collector通过并行的方式进行垃圾收集,这样就减少了垃圾收集器收集一次的时间,这种GC在实时性要求高于吞吐量的时候比较有用。此种GC可以用参数-XX:UseConcMarkSweepGC配置,此GC主要用于老生代和Perm代的收集。
- jvm 内存查看与分析工具
- jvm内存查看与分析工具
- JVM 内存查看与分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- JVM内存状况查看方法和分析工具
- jvm 内存分析工具
- jvm内存监控工具jconsole配置与内存溢出分析
- jvm内存查看和分析
- 配置JVM内存 查看内存工具
- opencv中用Resize和图像金字塔改变尺寸的区别
- cvbncv
- toStdString()
- 防火墙相关
- ARM 所有工具 DS-5 RVDS DSTREAM RVI 等支持的主机操作系统
- jvm内存查看与分析工具
- Qt中csv文件的导入与导出(zz)
- .Net技术交流群,为广大ASp.Net爱好者营造一个良好的学习氛围
- Android实现下拉导航选择菜单效果
- 折腾二维数组(哎,真的把自己折腾死了,虽然在做的时候错了好多地方,需要认真改错,但是看到最后的结果,真的很开心)
- C# WinForm中如何保存一个文本文件或cs文件
- ORACLE任务的概念
- POJ 2155 Matrix 树状数组
- invalidate()和postInvalidate() 的区别及使用