jvm内存查看与分析工具

转载 2013年12月04日 16:10:19

JVM标记整理收集器

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可以用如下的图来表示:

Serial gc和Parallel gc图解

2.3.3 Concurrent Collector

Concurrent Collector通过并行的方式进行垃圾收集,这样就减少了垃圾收集器收集一次的时间,这种GC在实时性要求高于吞吐量的时候比较有用。此种GC可以用参数-XX:UseConcMarkSweepGC配置,此GC主要用于老生代和Perm代的收集。

并行方式垃圾收集

相关文章推荐

JVM内存状况查看方法和分析工具

Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及...
  • xu1314
  • xu1314
  • 2012年07月05日 19:38
  • 18483

JVM内存状况查看方法和分析工具

Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及...

JVM 内存查看与分析工具

转自http://jameswxx.iteye.com/blog/731763      业界有很多强大的java profile的工具,比如Jporfiler,yourkit,这些收费的东西我...

JVM内存状况查看方法和分析工具

Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及...

jvm 内存查看与分析工具

转自http://jameswxx.iteye.com/blog/731763      业界有很多强大的java profile的工具,比如Jporfiler,yourkit,这些收费的东西我...
  • yaowj2
  • yaowj2
  • 2011年12月28日 09:37
  • 21163

JVM内存状况查看方法和分析工具

2.jvisualvm jvisualvm是一个Java虚拟机监控和分析工具,该工具提供了一个图形界面窗口,并且可以直观的了解Java应用程序的运行时信息。jvisualvm集成了许多工具,比如像j...

查看JVM内存状态的工具使用

只是介绍SUN JDK自带的小工具 一些工具的链接http://docs.oracle.com/javase/1.5.0/docs/tooldocs/ jps -lvm jinfo jst...

JVM内存分析工具使用

Java 内存堆栈分析,是我们在分析线上问题常用的手段。线上会遇到一些问题从日志上无法分析的疑难问题。我们可以分析一些JVM内存,来看看问题到底出在哪里了。在生产环境上一般不允许我们使用一些例如JMX...

JVM内存分析工具使用

Java 内存堆栈分析。我们在分析现网问题时候,经常会遇到一些问题从日志上无法分析的疑难问题。在我们举足无措的时候,我们可以分析一些JVM内存,来看看问题出在哪里了。 我们经常用到的一工具: 分析...

Sun JDK自带JVM内存使用分析工具HProf

Sun JDK自带JVM内存使用分析工具HProf       使用Sun JDK自带JVM内存使用分析工具HProf可以分析JVM堆栈,从而找到占用内存较大的对象。这对应经常出现内存泄漏(OOM)的...
  • yp120yp
  • yp120yp
  • 2011年11月05日 01:48
  • 1584
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jvm内存查看与分析工具
举报原因:
原因补充:

(最多只允许输入30个字)