From: "Tomas Doran" <bobtf...@bobtfish.net>
On 17 Aug 2010, at 06:27, Octavian Rasnita wrote:
I load and store this object in the stash on each request in the
Root::auto : Private method with:
$c->stash(menu => $c->model('Menu'));
But this would re-create the menu object on each request, and this takes
time.
No, it wouldn't. The adaptor you showed has a lifetime of the
application, and so it won't be recreated each request.
Thank you all for remembering me this! I used Catalyst::Model::Factory
somewhere else exactly because it doesn't create just a single object
instance like C::M::Adaptor, but I have forgotten.
> Also, even if you were creating an object every request (which you
aren't), if you're worrying about this without numbers, then this is
premature opimisation.
Well, it is not exactly without numbers. I have tried
ab -n 200 -c 5 http://localhost/
The result was... 3 to 4 requests per second.
I commented the line that stores the menu in the stash (for not using the
menu at all) and the same command line gave a result of around 33 requests
per second, which is a very big difference.
So I think the buggy part is the module that creates the menu object from
the data structure loaded in the configuration file.
I will first try to use the data structure directly in the TT template
without creating an object from it.
If it would be too slow, I will try to "draw" the menu entirely in the
template without using an external data structure, although I don't like
this.
Thank you all very much for your help.
Octavian
__________ Information from ESET NOD32 Antivirus, version of virus signature
database 5374 (20100817) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/