Matthew Weier O'Phinney wrote: > -- Bruno Friedmann <[EMAIL PROTECTED]> wrote > (on Tuesday, 21 October 2008, 06:56 AM +0200): >> Matthew Weier O'Phinney wrote: >>> -- Bruno Friedmann <[EMAIL PROTECTED]> wrote >>> (on Monday, 20 October 2008, 07:00 AM +0200): >>>> Matthew Weier O'Phinney wrote: >>>>> -- Bruno Friedmann <[EMAIL PROTECTED]> wrote >>>>> (on Sunday, 19 October 2008, 07:30 PM +0200): >>>>>> With the help of ZendStudio, I'm trying to understand why on one >>>>>> application I've got 25/30 req/s and on the second one I've only a >>>>>> 5/5.50 req (1.6.2) or a 7/8.2rqs ( 1.7.0 notice the little change ) >>>>>> ( a simple html file is giving a 385rqs and a 404 error page give around >>>>>> a 280/320rqs ) >>>>>> >>>>>> The profile result give me a 59% time consume by Layout ( which I >>>>>> doesn't have on the speed app ) and another 12.5% to Translate >>>>>> ( ok I'm using tmx which is not the most speedy thing ) >>>>> You can save me a little time and effort here by attaching the layout >>>>> script you use, as well as a count of the number of times calls are made >>>>> to translate items. With that information, I can add some information to >>>>> our performance and profiling test suite. >>>>> >>>> Quickly I'm calling the index controlleur / index view with layout. >>>> html/index.php >>>> -> ZFApplication ( which is the real bootstrap ) >>>> -> app/Module/Default >>>> -> /Controller/indexController >>>> -> Action indexAction >>>> -> Scripts/index/index.phtml >>>> >>>> Layout contain >>>> |-- common >>>> | |-- footer.phtml >>>> | |-- header.phtml >>>> | |-- help.phtml >>>> | `-- menu.phtml >>>> `-- main.phtml >>>> >>>> For the index view there's a test >>>> if ( !Zend_Auth::getInstance()-> hasIdentity() ): >>>> // Render login form or logged >>>> echo $this-> action(null, 'login'); >>>> // If we are anonymous >>>> >>>> ---------------------------------------------- >>>> For translation I've a global function __($str) which translate strings. >>>> >>>> For the whole projet there's a 945 call to it. >>>> >>>> For the index call profiled it's about 24 calls. >>> The above may very well be the culprit, but I'll write a test just to >>> see. >>> >>> Can you give the contents of your layout files? I'm curious to see how >>> you're pulling in content -- if you're using partial(), action(), or >>> simply render(). I've already identified a bottleneck in partial() that >>> I'll be working on. Additionally, I typically recommend against action() >>> because I know already that internally it's expensive; it's cheaper to >>> create a helper that pulls from the model directly. >>> >> If what you say is correct, I'm in trouble :-) >> >> You will see why in the source attached ... >> >> So I'm waiting your confirmation, and eventually other recommandations. >> There's some refactoring/rewritting in the air tonight :-) > > The only reason to use partial() instead of render() is when you > absolutely need a clean variable scope for the rendered view script. In > your case, I'd recommend simply substituting render() for each time you > use partial(); this will definitely improve speed. >
Ok this remark make sense ... I think it should find it's place as remark in docs. > I see you're using action() to pull in a login form. Since you won't be > worried about pre-populated values or validation, it may make more sense > here to either instantiate the form object directly and display it, or > create a view helper that does this. To be honest, I'm actually in a process to limits the number of view helper to a quantic's number. I feel I'm on the wrong way. Too strict perhaps in the logic approach There a login controller in which the login form & logic reside so I'm calling it because layout permit this, leaving all login to it's own controller/model/form/view system. > > See if the above changes help your performance. If not, the next thing > I'd suggest trying to move to gettext for your translations to see if > that speeds things up. If so, you may be able to develop using TMX, and > write a build script that converts to gettext later. > I will give them a try on Thursday and Friday and keep you inform of the result. In your Guru's opinion, shall I try the svn version of 1.7 or could I stay with the PR release ? Thanks all for you great advise, help each of us making php/ZF better and better, also in developer mind and how to approach & realize great things with. -- Bruno Friedmann Ioda-Net Sàrl 2830 Vellerat - Switzerland