欢迎来到天天文库
浏览记录
ID:39969337
大小:729.00 KB
页数:38页
时间:2019-07-16
《jvm垃圾回收原理g》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、GarbageCollectionFenghuaJin1st,May,2007GCDescriptionWhat’sGC?GC用于跟踪内存中的对象,并回收那些不再被其他对象引用的对象。内存中的对象类型活动对象:即当前正在其他对象引用的对象。非活动对象:这类对象不再被其他对象所引用,是孤立的对象。这类对象可以被回收,回收的堆空间用于分配给其它新创建的对象。2GCDescription(2)GC何时会被触发?系统空闲GC线程的优先级低于系统应用线程,当系统中没有应用线程执行时,GC会被触发。堆空间内存
2、不足当堆空间的内存不足以创建新对象时,GC会被触发。如果第一GC仍不能获得足够的空间,第二次GC将被触发,如果这一次仍无法获取足够的空间,“Outofmemory”将被抛出。3GCDescription(3)影响GC执行时间、频度的因素JVM堆(heap)空间的大小堆空间设置偏大,完全GC执行比较耗时,但执行频率会降低。堆空间设置恰好符合应用内存需求,完全GC执行很快,但执行会变得更频繁。4HeapDescription什么是堆(heap)空间堆是java程序中对象存活的地方,其中包括:活动对象非
3、活动对象,这类对象不再为应用程序中的任何指针能够到达。剩余内存堆空间中包含三种区域:新生代(younggeneration)旧生代(tenuredgeneration)永生代(permanentgeneration)5HeapDescription(2)新生代(younggeneration)新生代被分为两块:Eden、SurvivorspacesEden是为新对象分配的地方,很多对象分配后就变成非活动对象,即垃圾对象。这类对象具有“infantmortality”(幼儿死亡率)。如:方法体中的临
4、时对象。Survivorspaces也被称为两片生存空间,其中一片要保证任何时刻是空的,并作为下一个空间的目的地。当GC发生的时候,Eden中的存活对象被移入下一片空间。对象在生存空间之间移动,直到它们老化(达到存活时间阀值),然后被移入旧生代。Eden中对象满的时候,发生一次小收集(minorcollection),小收集执行时间取决于Eden中对象的infantmortality。infantmortality高,执行就会很快。6HeapDescription(3)旧生代(tenuredgen
5、eration)该区域用于存放那些生命周期比较长的对象,Eden中的活动对象经过minorcollection后,被复制到两片生存空间,当两片生存空间中的对象老化时,这些对象被移入旧生代。旧生代中对象满的时候,发生一次大收集(majorcollection),因为收集时要涉及所有存活对象,所以大收集的速度相对于小收集要慢很多。7HeapDescription(4)下图展示了典型应用中,对象生存周期8HeapDescription(5)永生代(permanentgeneration)这个代比较特别,
6、它负责保存反射对象。这些数据是虚拟机所需的数据,用来描述在Java语言中没有等同物的对象。例如,描述类与方法的对象存储在永生代中。9HeapDescription(6)分代后的heap结构10PerformanceTuning下图显示了GC性能对整个系统性能的影响11PerformanceTuning(2)从上图可以看出:如果系统花费在GC上的时间为1%,一旦系统跨越32个处理器时,系统的吞吐量(Throughput)将减少>20%如果系统花费在GC上的时间为10%,一旦系统跨越32个处理器时,系
7、统的吞吐量(Throughput)将减少高达75%Note:所谓throughput,即系统用于处理非GC时间的比例。12PerformanceTuning(3)PerformancemeasurementPause:thetimeswhenanapplicationappearsunresponsivebecausegarbagecollectionisoccurring.Footprint:theworkingsetofaprocess,measuredinpagesandcachelines
8、.Promptness:thetimebetweenwhenanobjectbecomesdeadandwhenthememorybecomesavailable.13PerformanceTuning(4)Howtoleveragethesemeasurementaverylargeyounggenerationmaymaximizethroughput,butdoessoattheexpenseoffootprint,promptness,andpausetimes.asmal
此文档下载收益归作者所有