GC'ing is done in parallel now... as far as I know, it won't halt all
threads... it's not as bad with the new JVM's.

| -----Original Message-----
| From: Warden, Matt [mailto:[EMAIL PROTECTED]
| Sent: Saturday, February 22, 2003 3:02 AM
| To: Tomcat Users List
| Subject: RE: OT: Is it ok to close connection in finalize() ?
| 
| On Feb 20, Mike Jackson had something to say about RE: OT: Is it ok to...
| 
| >> finalize() is indeed guaranteed to run upon garbage collection, which
| in
| >> turn is guaranteed to happen.  However, garbage collection can
| >> happen at any
| >> time, so the connection may not be closed immediately.  If this
| >> is an issue
| >> for you, you can call System.gc() to force it to garbage collect
| >> immediately.
| >
| >True, but the garbage collector doesn't have to collect everything.  So
| even
| >if you call it directly you can't count on it collecting some or all of
| the
| >available object.
| 
| That's not the half of it. Garbage collection requires that all running
| threads (except its own) are halted. In other words, not only does it
| stall the execution of your method for a couple seconds, but it also
| stalls the execution of ALL executing java code running on that VM
| instance. You can imagine what that does to performance.
| 
| This is why you want to avoid unnecessary object creation (like using
| Integer wrapper for nothing else but holding an int). This is also why you
| want to keep objects in as small scope as possible (within reason --
| there's no need to localize each section of code with { and }
| unnecessarily) -- to ensure that garbage collection, when it does run, can
| collect as much as possible. e.g. pass in a long representing the date and
| create the date object (new Date(long)) within the method, when
| possible. This usually means duplicate code (i.e. public void
| mymethod(long time), public void mymethod(Date date)), so that's something
| to consider.
| 
| Anyways, bottom line:
| System.gc() is almost always a bad idea.
| 
| One exception might be a "garbage collect" feature in an IDE written in
| java. There aren't many more.
| 
| See the following article by JavaWorld (reproduced on IBM's website):
| http://www-106.ibm.com/developerworks/java/library/j-jw-performance.html
| 
| 
| --
| mattwarden
| mattwarden.com
| 
| 
| ---------------------------------------------------------------------
| To unsubscribe, e-mail: [EMAIL PROTECTED]
| For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to