Hello,
i have tested the Sun VM JDK1.30_02 as Server VM.
When I start my servlets and use the VM with the option -verbose:gc, it
shows,  that the gc will do his work ervery second when you work with the VM.
Sometimes (?) it makes a FULL GC, that gives more memory free, but I don't
know exactly the difference (perhaps it will call finalize first).
I have also testet to make explizit calls like System.gc() or
System.runFinalization(),
it becomes no difference to the memory usage without that call.
Set the TOMCAT_OPTS variable to "-verbose:gc" and you'll see.
Btw you could set the default start option of the SUN VM in /jre/jvm.cfg.

Greetings,
Wolle

William Kaufman wrote:

> Nope.  If you _didn't_ null out the reference, you're guaranteed that it
> _won't_ get garbage-collected; but if you _do_ null it out, you're only
> making it _available_ for garbage collection.
>
> The actual garbage collection only happens when the VM runs out of memory,
> or some unspecified time after calling System.gc().  Or, when the VM just
> plain wants to--the JLS isn't specific about this.
>
>                                                             -- Bill K.
>
> > -----Original Message-----
> > From: Jurrius, Mark [mailto:[EMAIL PROTECTED]]
> > Sent: Thursday, May 03, 2001 7:43 AM
> > To: [EMAIL PROTECTED]
> > Subject: RE: Memory usage
> >
> >
> > Correct me if I'm wrong.  If for instance I want a bean
> > removed knowing that
> > System.gc() does not happen immediately, would setting the
> > bean equal to
> > null force the bean to be removed from memory right away and
> > not have to
> > rely on the garbage collection to eventually take place?
> >
> > Mark
> >
> >
> > -----Original Message-----
> > From: William Kaufman [mailto:[EMAIL PROTECTED]]
> > Sent: Thursday, May 03, 2001 10:07 AM
> > To:   '[EMAIL PROTECTED]'
> > Subject:      RE: Memory usage
> >
> > > That your finalize method is called, doesn't mean that
> > > the garbage collector has released your objects. The
> > > only way to be shure that this happens, is to explicitly
> > > run System.gc().
> >
> > Even that's not sufficient: it just suggests to the VM that
> > garbage-collecting might be a good idea right now.  Any actual garbage
> > collection would take place later, in another thread.
> >
> > And, even when it does happen, that doesn't mean all the memory will
> > necessarily be released to the OS: the VM will hold on to
> > some so that it
> > won't need to go back to the OS on the next allocation.
> >
> > You might want to get a memory profiler (like JProbe) and see
> > where the
> > memory is going.  At the very least, try doing something like,
> >
> >       Runtime rt = Runtime.getRuntime();
> >       System.err.println("Free="+rt.freeMemory()+",
> > total="+rt.totalMemory());
> >
> > often, to see how much memory is actually in use, and how much is just
> > allocated from the OS.
> >
> >                                                             -- Bill K.
> >
> >
> > > -----Original Message-----
> > > From: Ralph Einfeldt [mailto:[EMAIL PROTECTED]]
> > > Sent: Thursday, May 03, 2001 5:51 AM
> > > To: '[EMAIL PROTECTED]'
> > > Subject: AW: Memory usage
> > >
> > >
> > > That your finalize method is called, doesn't mean that
> > > the garbage collector has released your objects. The
> > > only way to be shure that this happens, is to explicitly
> > > run System.gc(). Otherwise it's up to the VM when it will
> > > free the memory. (Sun's JDK per default only releases
> > > memory if otherwise an OutOfMemoryError would occur, so
> > > unless you reach this border the VM will constanly grow)
> > >
> > > See also the options for the JVM:
> > >   -verbose:gc (Any VM)
> > >   -Xincgc (Sun SDK 1.3.*)
> > >   -Xms (Sun + IBM)
> > >   -Xmx (Sun + IBM)
> > >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Garry De Toffoli [mailto:[EMAIL PROTECTED]]
> > > Gesendet: Donnerstag, 3. Mai 2001 14:34
> > > An: [EMAIL PROTECTED]
> > > Betreff: Memory usage
> > >
> > > <snip/>
> > > I have in trouble with the memory usage with Tomcat 3.21,
> > WinNt 2000
> > > and Jdk 1.3 of Sun. the problem is that any operation does
> > > not release
> > > the memory occuped; to control the memory usage I use the
> > > Task Manager;
> > > when Tomcat start, the memory used from the process Java is
> > of 9608 K;
> > > when I request a Jsp page that has an error, like a variable
> > > not declared,
> > > the memory used is 11868K; if I wait for 1 ay also, this
> > > value does not
> > > change, so the memory used is not released,
> > >
> > > running a correct Jsp page, the memory used increase, and
> > this is not
> > > released yet;
> > > I have written a log on the finalize method of my class,
> > and this is
> > > called, so the garbage collector release all my object.
> > >
> > > This behavoir is normal?
> > > Probably changing the version of Tomcat this problem may be
> > corrected.
> > > <snip/>
> > >
> >

Reply via email to