Prev: Design issue in swing application
Next: Can I install new JavaRuntime version on top of previous? Automatic (CLASS)PATH change?
From: Krist on 18 Feb 2010 02:38 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 18 Feb 2010 10:39 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 20 Feb 2010 14:20 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 20 Feb 2010 15:44 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 20 Feb 2010 16:07
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 |