Saturday, November 12, 2011

Re: Containable Memory Usage

well, I doubt that, too.
Especially with a lot of model relations you are usually better off
using recursive=-1 globally and defining contain everywhere.

What troubles me more is the fact that containable is not optimized.
Or in other words: It creates up to 50x more queries than necessary
depending on the amount of joins in find(all) or paginate.
So the overhead using containable without custom bindModel is mainly
on the DB side, not the PHP side.
I tried to establish the grounds for a ticket. But I am not sure where
to begin.
It looks so easy to fix*, but I am sure it's probably not or creates
other problems. Otherwise they'd already covered the (in my opinion)
largest bottleneck remaining in 2.0.

* checking on hasOne and belongsTo first and assigning custom
bindModel relations with foreignkey=>false and a conditions query
containing the appropriate keys. one left join instead of 100-200
single queries + some additional ones for the hasMany relations etc.

On 12 Nov., 14:40, Jeremy Burns | Class Outfit
<jeremybu...@classoutfit.com> wrote:
> It'd be an interesting test, but from the outset I (unscientifically) doubt it. Without the contain behaviour and relying on recursive = whatever you are often pulling back way too much data, so some sort of model binding adjustment has to save horsepower. The containable behaviour simply manages the process of binding and unbinding, so I can't see how or why it'd be more inefficient than doing it yourself. I use it de facto and have not experienced any memory issues. Open to persuasion once I see some evidence though.
>
> Jeremy Burns
> Class Outfit
>
> http://www.classoutfit.com
>
> On 12 Nov 2011, at 13:30, zuha wrote:
>
>
>
>
>
>
>
> > I saw this comment on another thread, and instead of taking over that thread with a containable discussion, I'm starting a new one.  Can anyone confirm or deny this claim that "containable" uses a lot of memory?  (as say compared to bind/unbind)
>
> > On Sat, Nov 12, 2011 at 5:47 PM, phpMagpie <pa...@webbedit.co.uk> wrote:
> > I would advise you to learn how to use containable ... only takes a
> > couple of lines of code makes life a whole lot easier than having to
> > bind and unbind for every paginate.
>
> > I'd like to avoid it. I think it consumes a lot of memory. CMIIW.
> > Thank you.
>
> > --
> > Our newest site for the community: CakePHP Video Tutorialshttp://tv.cakephp.org
> > Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help others with their CakePHP related questions.
>
> > To unsubscribe from this group, send email to
> > cake-php+unsubscribe@googlegroups.com For more options, visit this group athttp://groups.google.com/group/cake-php

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate