[TYPO3-core] RFC #11410: Speed up BEgetRootLine by reusing parts of the rootline from the cache

Oliver Hader oliver at typo3.org
Fri Jun 26 17:01:16 CEST 2009


FYI: Committed to SVN Trunk (rev. 5635)

olly


Oliver Hader schrieb:
> Hi Fabrizio,
> 
> Fabrizio Branca schrieb:
>> This is an SVN patch request.
>>
>> Type: New feature/Code cleanup?
>>
>> Bugtracker references:
>> http://bugs.typo3.org/view.php?id=11410
>>
>> Branches:
>> trunk
>>
>> Problem:
>> Now t3lib_BEfunc::BEgetRootLine() caches whole rootlines without reusing
>> the cache for subparts of other rootlines. Especially in the backend
>> (e.g. on heavy operation that call BEgetRootLine on multiple pages) this
>> means that the same pages will be queried over and over again appearing
>> in different rootlines.
>>
>> Solution:
>> By restructuring the cache and refactroring the method is possible to
>> store single pages into the cache and reuse those cache entries to build
>> new rootlines.
>>
>> After appling my patch I amount of select statements was reduced to 50%
>> and profiling shows that the BEgetRootLine was 200% faster (when adding
>> the whole pagetree wo the crawler queue)
>>
>> BEgetRootLine behaves like it does before and the restructured cache in
>> $GLOBALS['T3_VAR']['BEgetRootLine_cache'] is not used in other places in
>> the core.
> 
> Great feature! In the context of processing multiple sites at once (e.g.
> like done by the crawler as you already mentioned) this really increases
> performance. In regular context I experienced many calls that were
> served by the cache on creating a new content element for example.
> 
> However, I changed some things (see the attached patch):
> * added a break when no page could be found (otherwise the while loop
> would run until the loop check is zero)
> * removed the SQL debug check (this is served by enabling "sqlDebug" in
> the Install Tool)
> * fixed some spacing/formatting issues
> 
> Besides that: +1 on reading and testing
> 
> olly
-- 
Oliver Hader
TYPO3 Release Manager 4.3


More information about the TYPO3-team-core mailing list