[Typo3-dev] Higher parsetime in 3.8.0

Simon Ihmig ihmig at kaliber5.de
Mon Aug 29 13:51:25 CEST 2005


Hi,

unfortunately there hasn't been any response to the problem described below.

Isn't any of the guys more involved into the core stuff willing to have 
a look at it, so at least we can have a confirmation whether this is 
really a design flaw that can be fixed effectively?

What it takes to fix this (sponsoring?) could be discussed later on.

Thanks!
Simon

Simon Ihmig schrieb:
> To "/Parse template":
> Within this section the function t3lib_TStemplate->start() is called by 
> tslib_fe->getConfigArray(). It builds the TS array, which is obviously 
> also needed by the USER_INT, however caching should allow for low overhead.
> 
> Profiling revealed that most of the time is consumed by the following 
> parts:
> A: invoke runThroughTemplates() - took 33ms
> B: invoke getHash() - took 7ms
> C: unserialize the cached TS - took 12ms
> D: cache_pagesection is written - took 3ms
> 
> The mentioned parsetimes are based on a rather complex site, with a lot 
> of extension etc., so maybe C can be optimized by simplifying the TS 
> code like Joey suggested.
> 
> This might be untrue as I am not so involved into the T3 core, but I 
> feel that A might be a real design flaw.
> 
> When you look at runThroughTemplates() it seems to look for templates in 
> the rootline, and calls processTemplate() for every template found, 
> which recursively calls itself for other templates that are beeing 
> included.
> 
> So basically it fetches all the used templates from the database. And if 
> you have splitted up a complex website into many templates, for the sake 
> of readability and reusability, which is a good thing to do IMHO (!), 
> this might lead to some 20 database calls or so!
> 
> So the question goes to some T3 insider: is there any need for this 
> whole process? I see that the actual TS code is fetched later from 
> cache, but there are still those many database operations before by 
> calling runThroughTemplates().
> 
> If that call makes sense in the current implementation, wouldn't it be 
> possible to also use some caching mechanism?
> 
> The TS code stays the same for every page view, so there shouldn't be a 
> need for this, should it?
> 
> Though 33ms might sound very little, when you are able to eleminate this 
> and thus reduce parsetimes from 90ms to 60ms, you can actually serve 50% 
> more traffic. For a highvolume site that's a huge performance increase!




More information about the TYPO3-dev mailing list