Thanks. 

I guess the developer in me isn't quite comfortable with so much temporary 
object creation and destruction.  CFMX pools db connections and threads; why 
not pool query objects, instead of instantiating new ones on each request? 

Looks like the JRE creates and destroys new query objects for every single 
request that touches queries, creating lots of memory garbage.  Easy to show 
this by performing queries and printing free allocated mem after each. 

I would think that a more efficient method would be to have a query object pool 
that gets allocated once and used by threads on demand (you'd have to bound 
query result size).  That way you could reuse the same query objects and take 
pressure off the GC.

Surely your application doesn't really need to temporarily allocate and free 
600MB of memory every 30 seconds?  Or is this object-creation-happy use of 
memory cleaned up by the GC actually more efficient than reuse would?

The current usage of memory just seems wrong to me.


>Yes this is normal. Our busy SPARC server has a 2.5 GB JVM and frees
>over 600MB when it does a GC. It does this at roughly 30 second
>intervals or so, like your figures show.
>
>On 6/6/07, Terry Ford <[EMAIL PROTECTED]> wrote:
>
>
>-- 
>mxAjax / CFAjax docs and other useful articles:
>http://www.bifrost.com.au/blog/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Create robust enterprise, web RIAs.
Upgrade & integrate Adobe Coldfusion MX7 with Flex 2
http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJP

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:280200
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to