-- Bruno Friedmann <[EMAIL PROTECTED]> wrote
(on Tuesday, 21 October 2008, 09:45 PM +0200):
> 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.

Makes sense. Just remember that this is an expensive operation. You may
want to consider a view helper that calls the action() helper, but
caches the results.

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

I'd go with trunk; there are changes going in daily improving the
release, and we'll be doing at least one bug hunting event before the
release. (1.7 will be branched from trunk prior to the first RC)

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

Reply via email to