From: Krist on
Hi All,

I am trying to find out whether our app is experiencing memory leak by
doing verbose gc on 4 days , here is the summary : (the detail is too
long too attached)

I use 2 JVMs with thi setting :
-ms3072M -mx3072M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -
XX:MaxPermSize=1024M

From the output below, is there any sign of memory leak ?

Output of GCViewer :
-------------
FootPrint : 3,071.938M
Total Time : 4d7h33m
Acc pauses : 19.25s
Throughput : 99.91 %
Full GC performance : 93.509 M/s
GC Performance : 984.563 M/s
---
Acc pauses : 319.25s
Acc full GC : 8.76s(2.7%)
Acc GC : 310.49s (97.3%)
Min Pause 0.00508s
Max Pause 8.44777s
Avg full GC : 0.62586s
Avg GC : 0.03832s

Thank you,
xtanto






From: Lew on
Krist wrote:
> From the output below, is there any sign of memory leak ?

There is no sign of a memory "leak".
There is no sign of a lack of a memory "leak".

--
Lew
From: Roedy Green on
On Wed, 17 Feb 2010 23:38:01 -0800 (PST), Krist <krislioe(a)gmail.com>
wrote, quoted or indirectly quoted someone who said :

>I am trying to find out whether our app is experiencing memory leak by
>doing verbose gc on 4 days , here is the summary : (the detail is too
>long too attached)

Unless there is bug in the JVM, a memory leak should be impossible, no
matter what fool thing you did in your program. You can however
packrat.

See http://mindprod.com/jgloss/packratting.html
http://mindprod.com/jgloss/leak.html

To detect packratting, you need to sample your app over time to see
if its memory use is gradually increasing.

You can also get statistics on what kinds of object are being held.
You check if those numbers seem reasonable.

See http://mindprod.com/jgloss/profiler.html
for ways to glean information about what you app is doing.

--
Roedy Green Canadian Mind Products
http://mindprod.com

When a newbie asks for help tracking a bug in a code snippet, the problem is usually is the code he did not post, hence the value of an SSCCE.
see http://mindprod.com/jgloss/sscce.html
From: Lew on
Krist wrote, quoted or indirectly quoted someone who said :
>> I am trying to find out whether our app is experiencing memory leak by
>> doing verbose gc on 4 days , here is the summary : (the detail is too
>> long too attached)

Roedy Green wrote:
> Unless there is bug in the JVM, a memory leak should be impossible, no
> matter what fool thing you did in your program. You can however
> packrat.

In a Java context "memory leak" refers to packratting, just as in a Java
context "reference" refers to a pointer. The terminology may be confusingly
similar to, say, C++, but one must take the definitions as the apply to the
subject.

--
Lew
From: Eric Sosman on
On 2/20/2010 3:44 PM, Lew wrote:
> Krist wrote, quoted or indirectly quoted someone who said :
>>> I am trying to find out whether our app is experiencing memory leak by
>>> doing verbose gc on 4 days , here is the summary : (the detail is too
>>> long too attached)
>
> Roedy Green wrote:
>> Unless there is bug in the JVM, a memory leak should be impossible, no
>> matter what fool thing you did in your program. You can however
>> packrat.
>
> In a Java context "memory leak" refers to packratting, just as in a Java
> context "reference" refers to a pointer. The terminology may be
> confusingly similar to, say, C++, but one must take the definitions as
> the apply to the subject.

Where did you find the official Java definition of "memory
leak?" The word "leak" does not appear in the index of the JLS
nor of the JVMS, nor (unless I've missed something, which is
possible) on any of the pages where those documents discuss
OutOfMemoryError or garbage collection. So, where is it, and
what exactly does it say a "memory leak" is?

--
Eric Sosman
esosman(a)ieee-dot-org.invalid