-- 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.

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. 

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.

-- 
Matthew Weier O'Phinney
Software Architect       | [EMAIL PROTECTED]
Zend Framework           | http://framework.zend.com/

Reply via email to