Re: [rvm-research] Why more heap required to finish Dacapo iteration runs?

Junjie Qian <[email protected]>
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <[email protected]>
Hi Andreas,

Thank you for the explanation first!
This becomes interesting, since I tested it with Hotspot 1.7 and Jikes 3.1.3. Dump the heap and compare what is changing is a good way.

One question is will the compiled code after warmups be in the heap dumps? Or we can just compare real heap usage between two GCs (like, GC size_x -> size_y, and so size_x is the real heap usage for nursery)?
 
Thanks!
Best
Junjie


On Sunday, August 10, 2014 3:58 AM, Andreas Sewe <[email protected]> wrote:
 


Hi,


> This problem is not in Jikes only, but also in Hotspot too.
> More heap is required if run Dacapo benchmark more iteration numbers,
> and this is different for different benchmarks. For example,
> lusearch/xalan/avorora require an significant increase but others do not.
> 
> Could some one give me some explanation, or link on this?

of the top of my head, there could be several explanations:

- Over time, the amount of JIT compiled code grows. At least on the
meta-circular Jikes RVM, compiled code is part of the same heap
(although kept in a different space therein) as application objects. I
don't think this is the case in HotSpot, though, where compiled code is
not kept in the heap controlled by -Xmx.

- Over time, class metadata accumulates. This can happen if the
benchmark generates classes (e.g., instances of Proxy) on the fly but
either some instances or their ClassLoader are not garbage collected.
Like compiled code, Jikes RVM also keeps class metadata in the same
heap. Older releases of HotSpot used a different heap (called permgen
space) for this kind of data, but AFAIK newer versions don't.

- There is some kind of "leak", e.g., a map holding onto objects from a
previous iteration that grows over time. To diagnose this, I would
recommend comparing two heap dumps taken after different numbers of
iteration to see of which classes the additional instances are (e.g.,
Map.Entry).

Hope this helps.

Andreas


------------------------------------------------------------------------------
_______________________________________________
Jikesrvm-researchers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers

------------------------------------------------------------------------------

_______________________________________________
Jikesrvm-researchers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.