您的位置:首页 > 编程语言 > Java开发

WAS JDK 1.5 存在堆碎片吗?

2011-01-06 14:55 78 查看
看到如下的GC信息,

 

<af type="tenured" id="1410" timestamp="Dec 01 10:57:04 2010"        

intervalms="111.788">                                                

  <minimum requested_bytes="60088" />                                

  <time exclusiveaccessms="0.094" />                                 

  <tenured freebytes="262771784" totalbytes="805306368" percent="32" >

    <soa freebytes="113472560" totalbytes="555661824" percent="20" />

    <loa freebytes="149299224" totalbytes="249644544" percent="59" />

  </tenured>                        

 

在请求60088bytes时,触发了GC,尽管soa部分还有110M的空闲

 

 

怀疑,WAS 1.5 依旧存在堆碎片

 

 

不过有一种解释,还算恰当:

 

compaction is extremely costly it is avoided for as long as possible.  

 

 

The behaviour the customer is seeing would point at a fragmented         

freelist that would be resolved if compaction were to run. This is a     

natural ffragmentation that occurs as you allocate objects of mixed      

sizes, the memory manager makes an attempt to allocate objects into free 

heap areas best sized to fit them but this is not always possible and    

once a larger chunk is split is will not be merged unless when the       

allocated object is free its neighboring heap areas do not contain live  

objects.

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jdk soa manager object 2010