From: Craig L. <cla...@is...> - 2014-03-21 12:25:28
|
On Fri, 2014-03-21 at 07:06 +0400, Stas Boukarev wrote: > Craig Lanning <cla...@is...> writes: > > > I have an application delivered to a self contained image. The image is > > set to have 16GB of dynamic memory space. > > > > The program is running along and reached a point where it had 9GB of the > > 16GB allocated. It went a little further, wrote some data to the > > network, and, apparently, started a GC which was unable to allocate > > memory so it dropped into the LDB with the message: "Heap exhausted > > during garbage collection: 0 bytes available, 64 requested.". > > > > Any ideas how I can determine what was going on? The program should > > have just freed up a good bit of memory so GC shouldn't have had any > > problem. > Around 9GB sounds about right, the full gc is performed by dividing the > heap into two parts and copying live data into the second part. If > there's more than a half of data left, then it won't be able to find a > place in the second half of the heap, hence the exhaustion. I'm running the generational GC. It shouldn't be dividing all of memory. It should be allocating a new region and copying an old region into it. None of the generations is 9GB. However, one was 7GB. I went back and took a look at the output and realized that the objects that it claims are in memory do not account for 9GB of space. It appears that something is in memory that shouldn't still be there. Is there a way I can scan memory and get counts of different objects? Is there a way I can find out the memory size of an individual object? Craig >>>CONFIDENTIALITY NOTICE>>> This electronic mail message, including any and/or all attachments, is for the sole use of the intended recipient(s), and may contain confidential and/or privileged information, pertaining to business conducted under the direction and supervision of the sending organization. All electronic mail messages, which may have been established as expressed views and/or opinions (stated either within the electronic mail message or any of its attachments), are left to the sole responsibility of that of the sender, and are not necessarily attributed to the sending organization. Unauthorized interception, review, use, disclosure or distribution of any such information contained within this electronic mail message and/or its attachment(s), is(are) strictly prohibited. If you are not the intended recipient, please contact the sender by replying to this electronic mail message, along with the destruction of all copies of the original electronic mail message (along with any attachments). |