Hi,

Thank you very much for your quick response.  I'll keep this in mind while
querying and hydrating objects.

However, the problem is actually that i already have a very high memory
consumption even before anything from the database is queried.  If you
check the trace, you'll notice that already 16MB is consumed before any
querying occurs.

> First off the cache is there to reduce memory consumption as when your
> cache
> is clear symfony will need to rebuild all the cache files and so that
> first
> run after a cleared cache is very high.
>
> One way to reduce your memory footprint is in the Propel criteria you use
> and the data returned. Propel's hydration of returned data into objects
> can
> be quite high. We have actually used the Propel method doSelectRS
> (doSelectStmt in Propel 1.3) and selectively chosen which fields the query
> should return as well as then iterating through the result set ourselves
> and
> adding them to an array instead of having fully hydrated objects which can
> be memory hogs.
>
> For small queries where the number of results returned is always going to
> be
> small, doSelect as is is great, but for large, unwieldy datasets its a
> better idea to use doSelectRS/doSelectStmt and then manage the results
> yourself.
>
> Another tip, always use retriveByPk and doSelectOne whenever you can as
> that
> is the same as running a query with "LIMIT 1" set and is also far more
> memory efficient than doing a fully hydrated doSelect().
>
> On Sat, Sep 26, 2009 at 11:05 AM, Inspiran <inspi...@gmail.com> wrote:
>
>>
>> Hi,
>>
>> I am already struggling for some time with my symfony application.
>> After clearing the cache my application consumes between 50 and 60
>> MB.  Without a clear cache the average consumption is between 15 and
>> 30 MB.  I find this a rather high number.  I am using symfony 1.2.8 ,
>> propel ORM and around 50 routes (no propel collections, just propel
>> routes).  I have 50 object / tables.
>>
>> I have installed and looked at the trace generated by xdebug and
>> notice that even before any action is really loaded, it already
>> consumes up to 20MB.  The things I tried to already lower the memory
>> foot print:
>>
>> - Removed comments from the Object and Peer classes
>> - Created my own Peer and ObjectBuilder which removes dozens of
>> methods which i don't use (such as joinExcept...,
>> docount...except, ...).
>> - Cleaned up all my routes (i removed the propelRouteCollections)
>> - Tried to use 'sfNoCache' for the routing class.
>>
>> Still I am not reallying seeing a way how to lower the memory
>> footprint.  Could somebody help me to understand what my next steps
>> should be?
>>
>> I have created two traces (one just after clearing the cache and next
>> one after refreshing the page) which can be found here
>> http://inspiran.be/traces.zip
>>
>>
>> Thank you very much!
>>
>> >
>>
>
>
> --
> Gareth McCumskey
> http://garethmccumskey.blogspot.com
> twitter: @garethmcc
>
> >
>



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to